Szukaj…


Wprowadzenie

Podobnie jak większość wartości OCaml, rekordy są domyślnie niezmienne. Ponieważ jednak OCaml obsługuje także programowanie imperatywne, umożliwia modyfikowanie poszczególnych pól. Zmienne pola mogą być modyfikowane w miejscu przez przypisanie, bez konieczności uciekania się do zwykłych technik funkcjonalnych, takich jak aktualizacja funkcjonalna.

Wprowadzając efekty uboczne, zmienne pola mogą skutkować poprawą wydajności, jeśli są używane prawidłowo.

Deklarowanie rekordu ze zmiennymi polami

Poniżej, weight jest zadeklarowana jako zmienne pole.

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

Uwaga: O ile projekt jest tutaj dotyczyła, należałoby wziąć pod uwagę fakt, że person na imię nie może się zmienić, ale ich waga jest.

Inicjowanie rekordu zmiennymi polami

Inicjowanie rekordu zmiennymi polami nie różni się od zwykłej inicjalizacji rekordu.

let john = { name = "John"; weight = 115 };;

Ustawienie wartości na zmienne pole

Aby przypisać nową wartość do zmiennego pola rekordu, użyj operatora <- .

john.weight <- 120;;

Uwaga : poprzednie wyrażenie ma typ unit .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow