Ricerca…


introduzione

Come la maggior parte dei valori OCaml, i record sono immutabili per impostazione predefinita. Tuttavia, poiché OCaml gestisce anche la programmazione imperativa, fornisce un modo per rendere mutevoli i singoli campi. I campi mutabili possono essere modificati sul posto per incarico, piuttosto che dover ricorrere alle solite tecniche funzionali, come l'aggiornamento funzionale.

Pur introducendo effetti collaterali, i campi mutabili possono migliorare le prestazioni se utilizzati correttamente.

Dichiarazione di un record con campi mutabili

Di seguito, il weight è dichiarato come campo mutabile.

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

Nota : per quanto riguarda il design qui, si potrebbe considerare il fatto che il nome di una person non cambierà probabilmente, ma il loro peso è.

Inizializzazione di un record con campi mutabili

L'inizializzazione di un record con campi mutabili non è diversa da un'inizializzazione di record normale.

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

Impostazione del valore su un campo mutabile

Per assegnare un nuovo valore a un campo di registrazione mutabile, utilizzare l'operatore <- .

john.weight <- 120;;

Nota : l'espressione precedente ha un tipo di unit .



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow