“对象(self:something)”在Ocaml中的含义是什么,继承?
class tcp_messaging my_address my_cookie (drop_it: drop_function) =
....
object(self : # messaging )
答案 0 :(得分:3)
类名前面的尖锐符号表示一个类类型,它至少包含类的类型,因此它或多或少是一个接口符号。
Ocaml没有特殊的关键字来引用其实现中的对象(例如C ++中的关键字this
)。相反,它提供了一种灵活的语法来定义将用于引用对象实例的名称(在这种情况下使用名称self
)。看起来这个命名实际上是一般使用的(这是一种练习),所以你会经常看到它。
基本上,该语法允许您将对象绑定到名称,并在该名称上添加约束,以便实现必须至少实现该类型。如果没有#
,则类实现需要完全属于该类型。
答案 1 :(得分:2)
顺便说一句,self
绑定了对象本身的值。阅读以下manual。
答案 2 :(得分:1)
object(self)
定义当前对象的值。
: #messaging
位表示它实现了接口messaging
。