Eiffel:扩展类型是否符合 ANY?

Eiffel: Do expanded types conform to ANY?

  1. 假设 foo: ANY 是一个可分配的实体。
  2. 当我这样做时会发生什么 foo := create {BOOLEAN}

它总是会失败,因为 BOOLEAN(扩展类型)不符合 ANY(引用类型),对吗?

扩展类型符合参考类型(前提是满足其他一致性要求)。因此,您提到的示例效果很好。而且写foo := True.

也是可以的

此类重新附加后的主要区别在于保留了扩展类型的复制语义,即如果存在类型 ANY 的实体 bar,赋值 bar := foo 将附加一个布尔对象的副本到 bar,而不是相同的引用。因此,如果之后更改附加到 foo 的对象的值,bar 将保持不变。

回答你原来的问题,BOOLEAN符合ANY