私は最近OCamlコードを書き始めたばかりなので、これは素朴な質問かもしれませんが、私はこれを自分で理解することができませんでした。
OCamlには次の型宣言があります。
type myType =
| Int of int
これで、myTypeタイプのオブジェクトができました。
このオブジェクトが保持するintの値にアクセスする方法はありますか?はいの場合、どのように?
int
必要なのは、共用体型の値から値を取得することです。OCamlでは、パターンマッチングを使用して、値を分解および変換することがよくあります。
let get_int v =
match v with
| Int i -> i
OCamlトップレベルで関数を試すと、次のようになります。
# let v = Int 3;;
val v : myType = Int 3
# get_int v;;
- : int = 3
ユニオンタイプのケースが多い場合は、関数にパターンを追加get_int
して、適切な方法で処理するだけです。
あなたの例のような単一ケースのユニオンの場合、それらの値に対して直接パターンマッチングを行うことができます。
# let (Int i) = v in i;;
- : int = 3
パターンマッチングを使用して値にアクセスできます。
match value_of_my_type with
| Int i -> do_something_with i