變體記錄結構
記錄型別的判別式可能會影響物件的結構。在物件中可以存在元件的選擇,因為當建立物件時,判別式具有特定值。為了支援這種變化,記錄型別的定義包括依賴於判別式的情況的區別:
type Fruit is (Banana, Orange, Pear);
type Basket (Kind : Fruit) is
record
case Kind is
when Banana =>
Bunch_Size : Positive;
Bunches_Per_Box : Natural;
when Pear | Orange =>
Fruits_Per_Box : Natural;
end case;
end record;
然後為香蕉創造一個盒子,
Box : Basket (Banana);
Box
物件現在除了判別式 Kind
之外還有兩個記錄元件,即 Bunch_Size
和 Bunches_Per_Box
。