foo: ANY
是可分配的实体。foo := create {BOOLEAN}
时会发生什么?它总是会失败,因为BOOLEAN
(扩展类型)不符合ANY
(引用类型),对吗?
答案 0 :(得分:1)
扩展类型符合参考类型(前提是满足其他一致性要求)。所以,你提到的例子很好。此外,可以写foo := True
。
这种重新附加后的关键区别是保留了扩展类型的复制语义,即如果存在类型为bar
的实体ANY
,则赋值bar := foo
将附加副本布尔对象为bar
,而不是相同的引用。因此,如果随后更改了附加到foo
的对象的值,则bar
保持不变。
回答原始问题,BOOLEAN
符合ANY
。