不,你必須編寫代碼就像
return (Left.Redness_Scale = Right.Redness_Scale) and then
(Left.Weight = Right.Weight) and then
(Left.Age = Right.Age);
(假設你有一個返回布爾測試蘋果是否同樣比較函數)。從技術上講,這些不是三個獨立的陳述。但是,不,您定義記錄的方式,您必須使用三次相等比較。
然而,你可能要考慮的是一個蘋果(而不是行動,有人已經在蘋果)的原「特色」可能是值得變成自己的抽象,像
type Apple_Characteristics is record
Redness_Scale : Integer;
Weight : Natural:
Age : Natural;
end record;
type Apple_T is record
Characteristics : Apple_Characteristics;
Eaten : boolean;
end record;
現在您可以將兩個記錄的Characteristics
組件與一個相等測試進行比較。這是區分特徵的一個好處,但也可能有其他特徵;如果這些字段足夠相關,以至於比較會將這些字段組合在一起並忽略其他字段,那麼可能還有其他操作將這些字段作爲一個組來處理。
這意味着您必須使用A.Characteristics.Weight
(例如)來查看字段。但是假設你已經完成了你應該做的並且使得私有類型以及爲包的其他用戶提供的操作(過程/函數),那麼需要添加.Characteristics
僅在定義的包的主體中出現當它實現這些操作時,它將會是Apple_T
。將Apple_Characteristics
分隔成另一種記錄類型是包的用戶不需要知道的實現細節。
來源
2013-10-30 15:05:21
ajb
您對哪些比較感興趣? 「=」,「<」和/或別的什麼? –