让我们拥有这样的代码
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类?我想要一个实现这种接口的类。
答案 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