OCaml
Veranderlijke recordvelden
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 .