ocaml对象语法`object(...)`的含义是什么?

时间:2013-01-28 14:36:34

标签: ocaml

“对象(self:something)”在Ocaml中的含义是什么,继承?

class tcp_messaging my_address my_cookie (drop_it: drop_function) =
....
object(self : # messaging )

3 个答案:

答案 0 :(得分:3)

类名前面的尖锐符号表示一个类类型,它至少包含类的类型,因此它或多或少是一个接口符号。

Ocaml没有特殊的关键字来引用其实现中的对象(例如C ++中的关键字this)。相反,它提供了一种灵活的语法来定义将用于引用对象实例的名称(在这种情况下使用名称self)。看起来这个命名实际上是一般使用的(这是一种练习),所以你会经常看到它。

基本上,该语法允许您将对象绑定到名称,并在该名称上添加约束,以便实现必须至少实现该类型。如果没有#,则类实现需要完全属于该类型。

答案 1 :(得分:2)

顺便说一句,self绑定了对象本身的值。阅读以下manual

答案 2 :(得分:1)

object(self)定义当前对象的值。

: #messaging位表示它实现了接口messaging