2016-12-17 15 views
1

を定義し、実装するのは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のクラスを使用していますか?私はそのようなインターフェースを実装するクラスを持っていたいと思います。

+0

F#では、これは普通のことです(キーワード "with")。実際はOCAMLプログラマではありませんが、おそらくあなたは運が良かったのですが、F#ソリューションはOCAMLソリューションと同じか類似していますか? – BitTickler

+0

また、https://realworldocaml.org/v1/en/html/classes.htmlを読んで、OCAMLのやり方を見てください... – BitTickler

答えて

1

何かがクラス型が呼び出されます。

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