Ada 95 Quality and Style Guide Chapter 5

Chapter 5: Programming Practices - TOC - 5.6 STATEMENTS

5.6.10 Aggregates

guideline

  • Use an aggregate instead of a sequence of assignments to assign values to all components of a record.
  • Use an aggregate instead of a temporary variable when building a record to pass as an actual parameter.
  • Use positional association only when there is a conventional ordering of the arguments.

  • example

    It is better to use aggregates:

    Set_Position((X, Y));
    Employee_Record := (Number     => 42,
                        Age        => 51,
                        Department => Software_Engineering);
    

    than to use consecutive assignments or temporary variables:

    Temporary_Position.X := 100;
    Temporary_Position.Y := 200;
    Set_Position(Temporary_Position);
    Employee_Record.Number     := 42;
    Employee_Record.Age        := 51;
    Employee_Record.Department := Software_Engineering;
    

    rationale

    Using aggregates during maintenance is beneficial. If a record structure is altered, but the corresponding aggregate is not, the compiler flags the missing field in the aggregate assignment. It would not be able to detect the fact that a new assignment statement should have been added to a list of assignment statements.

    Aggregates can also be a real convenience in combining data items into a record or array structure required for passing the information as a parameter. Named component association makes aggregates more readable.

    See Guideline 10.4.5 for the performance impact of aggregates.


    < Previous Page Search Contents Index Next Page >
    1 2 3 4 5 6 7 8 9 10 11
    TOC TOC TOC TOC TOC TOC TOC TOC TOC TOC TOC
    Appendix References Bibliography