OCaml
変更可能なレコードフィールド
サーチ…
前書き
ほとんどのOCaml値と同様、デフォルトではレコードは不変です。しかし、OCamlは命令型プログラミングも扱うので、個々のフィールドを変更可能にする方法を提供します。変更可能なフィールドは、機能的な更新などの通常の機能テクニックに頼るのではなく、割り当てによってインプレースで変更できます。
副作用を導入している間に、変更可能なフィールドは、正しく使用するとパフォーマンスが向上する可能性があります。
可変フィールドを持つレコードの宣言
以下では、 weightは可変フィールドとして宣言されています。
type person = {
name: string;
mutable weight: int
};;
備考 :デザインに関する限り、 personの名前は変わる可能性はないが、その重さは考慮される。
可変フィールドでレコードを初期化する
変更可能なフィールドでレコードを初期化することは、通常のレコードの初期化と同じです。
let john = { name = "John"; weight = 115 };;
値を可変フィールドに設定する
変更可能なレコードフィールドに新しい値を割り当てるには、 <-演算子を使用します。
john.weight <- 120;;
注 :前の式はunitです。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow