Zoeken…


Invoering

Zoals de meeste OCaml-waarden zijn records standaard onveranderlijk. Omdat OCaml echter ook imperatief programmeren verwerkt, biedt het een manier om afzonderlijke velden muteerbaar te maken . Veranderbare velden kunnen ter plekke worden gewijzigd door toewijzing, in plaats van gebruik te moeten maken van gebruikelijke functionele technieken, zoals functionele update.

Hoewel bijwerkingen worden geïntroduceerd, kunnen veranderlijke velden leiden tot betere prestaties bij correct gebruik.

Een record declareren met veranderlijke velden

In het volgende wordt weight aangegeven als een veranderlijk veld.

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

Opmerking : Wat het ontwerp betreft, zou men rekening moeten houden met het feit dat de naam van een person waarschijnlijk niet zal veranderen, maar zijn gewicht wel.

Een record met veranderlijke velden initialiseren

Het initialiseren van een record met veranderlijke velden verschilt niet van een normale recordinitialisatie.

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

De waarde instellen op een veranderlijk veld

Gebruik de operator <- om een nieuwe waarde toe te wijzen aan een veranderlijk recordveld.

john.weight <- 120;;

Opmerking : de vorige uitdrukking heeft een unit .



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow