今回は列挙型です。特に多く語ることはないのであっさりといきます。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「再帰とループ」