サーチ…


前書き

ほとんどの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