以下の内容はhttps://blog.okazuki.jp/entry/20110129/1296290534より取得しました。


手軽なスクリプト言語としてのF# その13「オブジェクト初期化子みたいなの」

F#のクラスは、インスタンスを生成するときにプロパティの値を任意の値で初期化する機能があったりします。C#でいうオブジェクト初期化子みたいなものですね。
ただ、F#ではオブジェクト初期化子という名前は使われていなくて「初期化時のプロパティへの値の代入」という言われ方をしています。


書き方は簡単です。以下のように書きます。

let 変数 = クラス名(プロパティ名 = 値, プロパティ名 = 値...)

さっそくサンプルで動きを確認してみます。

// 名前と年齢を持ったクラス
type Person() =
    let mutable name = ""
    let mutable age = 0

    member this.Name with get() = name and set(v) = name <- v
    member this.Age with get() = age and set(v) = age <- v

// 初期化時のプロパティへの値の代入
let p = Person(Name = "田中", Age = 18)
// 値がちゃんと入ってるか確認
printfn "Person Name = %s, Age = %d" p.Name p.Age

実行結果

Person Name = 田中, Age = 18



以上の内容はhttps://blog.okazuki.jp/entry/20110129/1296290534より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14