Waarden veranderen: mutatie en gedeelde lijsten

Begrippen uitgelegd

Mutatie betekent dat je de inhoud van een bestaande waarde verandert. Een muteerbare verzameling staat dat toe. Bij een onveranderlijke, of immutable, waarde kun je de inhoud niet ter plekke aanpassen.

Pliro-lijsten en -maps kunnen veranderen. Tekstwaarden zijn onveranderlijk: je kunt een variabele andere tekst geven, maar geen teken vervangen door aan een tekstindex toe te kennen.

Twee namen, één lijst

# taal: nl
laat scores = [2, 5]
laat andere = scores
zet andere[0] = 9
zeg scores[0]

Het antwoord is 9. Beide namen verwijzen naar dezelfde lijst. De toekenning kopieerde de inhoud niet naar een aparte lijst. Zo’n gedeelde verwijzing heet soms een alias.

De waarde bij een naam vervangen

Met bijvoorbeeld zet andere = [7, 8] laat je die naam naar een nieuw geschreven lijst verwijzen. Je vervangt daarmee niet de inhoud van scores. Een variabele opnieuw toekennen en een gedeelde verzameling veranderen zijn verschillende bewerkingen.

Een ondiepe kopie maakt een nieuwe buitenste verzameling, maar kan geneste verzamelingen blijven delen. Een diepe kopie kopieert ook die binnenste verzamelingen. Lees de referentie over delen voordat je aanneemt dat een functie jouw gegevens heeft gekopieerd.

Voorspel wat er gebeurt als je index 1 verandert in plaats van 0. Welk lijstonderdeel zie je daarna via iedere naam?

Toekenning · Bijwerkingen