Re: Records that could be arrays



"Stephen Leake" <stephe_on_the_web@xxxxxxxxxxxx> wrote in message
news:u8xs2xm0l.fsf@xxxxxxxxxxxxxxx
Justin Gombos <rpbkbq.xax.gld@xxxxxxxx> writes:

I noticed this example code in 5.4.4 of the Ada Quality and Style
Guide:

type Coordinate is
record
Row : Local_Float;
Column : Local_Float;
end record;

type Window is
record
Top_Left : Coordinate;
Bottom_Right : Coordinate;
end record;

Would anyone here write something like that?

Yes; Windex has it. Although if I was rewriting it from scratch now,
I might use an array.

Claw also has types like this:

type Point_Type is record
X, Y : Int;
end record;

type Size_Type is record
Width, Height : Int; -- Width=X_Size, Height=Y_Size.
end record;

type Rectangle_Type is record
Left, Top, Right, Bottom : Int;
end record;

That's partly because we're matching the Windows definitions for these
types, but also because these "feel" like records to me. I generally only
use arrays when I'm storing a number of identical items with identical uses
(although ordering may matter); "Left" and "Bottom" hardly have the same
meaning or use, even though they have the same type and sometimes need to be
combined.

And its certainly easier to change just one if it isn't an array.

Randy.



.