3

私は最近OCamlコードを書き始めたばかりなので、これは素朴な質問かもしれませんが、私はこれを自分で理解することができませんでした。

OCamlには次の型宣言があります。

type myType =
| Int of int 

これで、myTypeタイプのオブジェクトができました。

このオブジェクトが保持するintの値にアクセスする方法はありますか?はいの場合、どのように?

4

2 に答える 2

7

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
于 2012-10-22T15:35:38.243 に答える
5

パターンマッチングを使用して値にアクセスできます。

match value_of_my_type with
| Int i -> do_something_with i
于 2012-10-22T14:45:31.250 に答える