2

Ocaml中的“object(self:something)”是什么意思,继承?

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

3 回答 3

3

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

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

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

于 2013-01-28T16:52:17.477 回答
2

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

于 2013-01-28T14:55:53.280 回答
1

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

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

于 2013-01-28T14:57:08.227 回答