Wat is een optional in Swift?

Een optional is een ‘ingepakte’ variabele: een variabele die wel of geen waarde kan hebben. Hierop kan worden getest, waarna optionals die wél over een waarde beschikken, kunnen worden ‘uitgepakt’.

Een optional wordt gedeclareerd door achter het datatype een vraagteken te zetten:

Zolang een optional nog niet is gedeclareerd, is hij nil, wat “geen waarde” betekent. Een nil-variabele is dus een variabele die geen waarde bevat. Hierop kun je testen:

Een optional die niet nil is (en die dus een waarde bevat), moet worden ‘uitgepakt’ om bij de inhoud ervan te komen. Dit doe je door achter de naam van de variabele een uitroepteken te zetten:

Het op een dergelijke manier ‘uitpakken’ van een optional wordt forced unwrapping genoemd.

De variabele b bevat nu de ‘uitgepakte’ variabele a, ofte wel de inhoud van die variabele, in dit voorbeeld dus de waarde 23.

Omdat het eerst testen (“bevat de optional een waarde?” en dan uitpakken (een uitroepteken achter de optional zetten) zo vaak voorkomt, bestaat er nog een andere manier om een optional uit te pakken: optional binding. In programmacode ziet dit er als volgt uit:

De constructie if let b = a betekent: “als de optional a een waarde bevat, pak hem dan uit, plaats hem in de variabele b en voer het eropvolgende codeblok uit.” Deze if let-constructie wordt dus optional binding genoemd.

Related entries