2
let memorize o table = Hashtbl.add table (o :> < >) o

:>是演员,但我不明白< >里面的..

4

2 回答 2

2

< ... >OCaml 中对象类型的语法也是如此。这些方法进入<and内部>< >是不指定方法的对象类型;因此任何对象类型都可以向上转换为这种类型。这种类型通常没什么用,因为你不能用这种类型的值做任何事情(因为在 OCaml 中没有对象类型的向下转换,你永远不能把它变成你可以调用方法的东西)。

在这种情况下,他们将其用作哈希表的键类型。我真的不知道他们为什么要这样做。

于 2013-02-01T09:48:25.290 回答
1

< mi: ti>是具有 type 方法的对象的mi类型ti。在这里,您强制o转换为没有任何方法的对象,即所有对象类型的超类型(类似于ObjectJava)。换句话说,表应该能够存储任何对象。

于 2013-02-01T09:45:05.967 回答