- 假設
foo: ANY
是一個可分配的實體。 - 當我做
foo := create {BOOLEAN}
會發生什麼?
它總是失敗,因爲BOOLEAN
(擴展型)不符合ANY
(引用類型),正確嗎?艾菲爾:擴展類型是否符合ANY?
foo: ANY
是一個可分配的實體。foo := create {BOOLEAN}
會發生什麼?它總是失敗,因爲BOOLEAN
(擴展型)不符合ANY
(引用類型),正確嗎?艾菲爾:擴展類型是否符合ANY?
擴展類型符合引用類型(前提是滿足其他一致性要求)。所以,你提到的例子工作得很好。此外,可以寫foo := True
。
的關鍵區別這樣reattachments之後是膨脹類型的複製語義被保留,即如果有ANY
類型的實體bar
,分配bar := foo
將布爾對象的副本附加到bar
,不相同的參考。因此,如果之後更改附加到foo
的對象的值,則bar
保持不變。
回答您的原題,BOOLEAN
符合ANY
。
我的印象是,每種類型,擴展與否,都符合ANY。我測試該代碼: foo:= create {BOOLEAN} 它工作。 –