Поиск…


Вступление

Как и большинство значений OCaml, записи по умолчанию неизменяемы. Однако, поскольку OCaml также обрабатывает императивное программирование, обеспечивает способ сделать отдельные поля изменчивы. Измененные поля могут быть изменены на месте путем назначения, а не прибегать к обычным функциональным методам, таким как функциональное обновление.

При введении побочных эффектов изменяемые поля могут привести к повышению производительности при правильном использовании.

Объявление записи с изменяемыми полями

В дальнейшем weight объявляется изменчивым полем.

type person = {
  name: string;
  mutable weight: int
};;

Примечание: Что касается дизайна обеспокоен здесь, можно было бы рассмотреть вопрос о том , что person имя «s, вероятно, не изменится, но их вес.

Инициализация записи с изменяемыми полями

Инициализация записи с изменяемыми полями не отличается от обычной инициализации записи.

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