ocaml类对象

bla*_*ath 3 ocaml

是什么

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)

Fab*_*ant 6

在许多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.