OCaml
Zmienne pola rekordów
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 .