是什么
self: #Arakoon_client.client
Run Code Online (Sandbox Code Playgroud)
在这段代码中意味着,以及如何使用这样的对象
class remote_client ((ic,oc) as conn) =
object(self: #Arakoon_client.client)
Run Code Online (Sandbox Code Playgroud)
在许多OO语言中,有一个关键字(this在C++中)从其方法中引用对象.在OCaml中,您可以选择要用于引用对象的名称,方法是在object关键字后面指定其名称(此处,他们已选择self).
在OCaml中,您还可以为类继承的父项命名:
class x = object (self)
inherit x_parent as parent
method print = parent#print; print_newline()
end
Run Code Online (Sandbox Code Playgroud)
例如,这可以用于使用来自祖先的方法,这些方法已被当前类中的方法覆盖:在前面的示例中,parent#print调用继承的方法,同时self#print调用当前方法.
最后,在定义类时x,可以使用#x表示法引用此类的对象类型.这里,#Arakoon_client.client指的是client模块中定义的类的对象类型Arakoon.