胁迫是否真的没有运行时成本?

时间:2017-03-17 10:08:26

标签: ocaml

我一直认为OCaml(:>运算符)中的强制只需要满足类型检查器,但不会导致生成任何代码。这是真的吗?

1 个答案:

答案 0 :(得分:3)

我假设您正在谈论supertype coercion,例如(expr : type :> supertype)

是的,此操作在编译时在类型检查器中进行。在运行时没有任何事情发生,需要0次。这是因为(在OCaml中),只有在类型安全时才允许强制。所以在运行时没有什么可以检查的。