OCaml
Champs d'enregistrement mutables
Recherche…
Introduction
Comme la plupart des valeurs OCaml, les enregistrements sont immuables par défaut. Cependant, puisque OCaml gère également la programmation impérative, il fournit un moyen de rendre les champs individuels modifiables . Les champs modulables peuvent être modifiés sur place par affectation, plutôt que d'avoir à recourir aux techniques fonctionnelles habituelles, telles que la mise à jour fonctionnelle.
Tout en introduisant des effets secondaires, les champs mutables peuvent améliorer les performances lorsqu'ils sont utilisés correctement.
Déclarer un enregistrement avec des champs mutables
Dans la suite, le weight est déclaré comme un champ mutable.
type person = {
name: string;
mutable weight: int
};;
Remarque : En ce qui concerne le design, on pourrait considérer le fait que le nom d'une person ne change pas, mais son poids l'est.
Initialisation d'un enregistrement avec des champs modifiables
L'initialisation d'un enregistrement avec des champs modifiables n'est pas différente d'une initialisation régulière des enregistrements.
let john = { name = "John"; weight = 115 };;
Définition de la valeur sur un champ mutable
Pour attribuer une nouvelle valeur à un champ d'enregistrement modifiable, utilisez l'opérateur <- .
john.weight <- 120;;
Remarque : L'expression précédente a un type d' unit .