分型和包容有什么区别?包容是否意味着隐性强制?

最佳答案

是的,您基本上是对的。

子类型化是两种类型之间的关系。就其本身而言,它并没有说这种关系实际上如何应用于表达式的类型。

包含通常意味着存在用于表达式的键入规则,该规则允许将子类型隐式地应用于其类型。有些语言具有子类型化但没有归类规则,并且必须使用特殊的类型注释(例如OCaml)显式地调用它。

子类型是否是“强制性的”还存在一些独立的方面。强制子类型会更改其应用的值。例如,在Int

09-28 12:12