- 假设
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} 它工作。 –