OCaml定义和实现接口

时间:2016-12-17 19:22:44

标签: ocaml

让我们拥有这样的代码

module type INTERFACE =
sig
  val function_that_must_be_implemented : int -> int
end

module Implementation : INTERFACE = 
struct
  let function_that_must_be_implemented x = x
end

有没有办法描述相同的东西,但使用OCaml类?我想要一个实现这种接口的类。

1 个答案:

答案 0 :(得分:2)

有一种称为类类型的东西:

class type interface = object method method_I_want : int end

然后你可以实现它:

class implementation : interface = object
    method method_I_want = 14
end

您确实可以实例化此类:

# let abc = new implementation;;
val abc : implementation = <obj>
# abc#method_I_want;;
- : int = 14