[英]Eiffel: Do expanded types conform to ANY?
foo: ANY
是可分配的实体。 foo := create {BOOLEAN}
时会发生什么? 它将总是失败,因为BOOLEAN
(扩展类型)不符合ANY
(引用类型),对吗?
扩展类型符合参考类型(前提是满足其他符合性要求)。 因此,您提到的示例很好用。 而且,可以写foo := True
。
重新附加之后的主要区别在于保留了扩展类型的复制语义,即,如果存在类型为ANY
的实体bar
,则赋值bar := foo
会将布尔对象的副本附加到bar
,而不是相同的引用。 因此,如果此后附加到foo
的对象的值发生更改, bar
保持不变。
回答您的原始问题, BOOLEAN
符合ANY
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.