F# の型を扱う
レコードの場合
code:fsharp
type Person = {First:string; Last:string}
let aPerson = {First="Alex"; Last="Adam"}
分割代入も可能
code:fsharp
let {First=first; Last=last} = aPerson
ドット記法でフィールドにアクセスできる
code:fsharp
let first = aPerson.First
let last = aPerson.Last
code:fsharp
type OrderQuantity =
| UnitQuantity of int
| KilogramQuantity of float
構築するには、ケースラベルのいずれかをコンストラクタ関数として使用する
code:fsharp
let anOrderQtyInUnits = UnitQuantity 10
let anOrderQtyInKg = KilogramQuantity 2.5
code:fsharp
let printQuantity aOrderQty =
match aOrderQty with
| UnitQuantity uQty -> printfn "%i units" uQty
| KilogramQuantity kgQty -> printfn "%g kg" kgQty
printQuantity anOrderQtyInUnits // 10 units
printQuantity anOrderQtyInKg // 2.5 kg