今回は列挙型です。特に多く語ることはないのであっさりといきます。C#とかでいうenumですね。宣言方法はいたってシンプルで以下のように記述します。
type 型名 = | 値1 = intの値 | 値2 = intの値 | 値3 = intの値 ...
早速使ってみます。
// 赤 緑 青の列挙型 type Color = | Red = 0 | Green = 1 | Blue = 2 // 列挙型を使う let c = Color.Red // 普通に印字 printfn "%A" c // int型に変換 printfn "%d" <| int c // intから列挙型に変換 printfn "%A" <| enum<Color> 2 // パターンマッチもできる match c with | Color.Red -> printfn "赤色がきたよ" | Color.Green -> printfn "緑色がきたよ" | Color.Blue -> printfn "青色がきたよ" | _ -> printfn "ありえん"
実行結果は以下のようになります。
Red 0 Blue 赤色がきたよ
型名.値名で値を取得できて、intにキャストしたりintからenumにキャストしたりも出来ます。あとは、F#の強力なパターンマッチに使うことも出来ます。至れり尽くせりです。
過去記事
- 手軽なスクリプト言語としてのF#
- 手軽なスクリプト言語としてのF# その2
- 手軽なスクリプト言語としてのF# その3
- 手軽なスクリプト言語としてのF# その4
- 手軽なスクリプト言語としてのF# その5
- 手軽なスクリプト言語としてのF# その6
- 手軽なスクリプト言語としてのF# その7
- 手軽なスクリプト言語としてのF# その8「レコード」
- 手軽なスクリプト言語としてのF# その9「クラス」
- 手軽なスクリプト言語としてのF# その10「継承・アブストラクトクラス」
- 手軽なスクリプト言語としてのF# その11「インターフェースと演算子のオーバーロード」
- 手軽なスクリプト言語としてのF# その12「ラムダ式とイベント」
- 手軽なスクリプト言語としてのF# その13「オブジェクト初期化子みたいなの」
- 手軽なスクリプト言語としてのF# その14「合成演算子とパイプ演算子」
- 手軽なスクリプト言語としてのF# その15「WPFしてみた」
- 手軽なスクリプト言語としてのF# その16「総称型 ジェネリック」
- 手軽なスクリプト言語としてのF# その17「リスト」
- 手軽なスクリプト言語としてのF# その18「オプション型」
- 手軽なスクリプト言語としてのF# その19「参照型よりオプション型って安全?」
- 手軽なスクリプト言語としてのF# その20「パターンマッチ」
- 手軽なスクリプト言語としてのF# その21「再帰とループ」