Wat is forced unwrapping in Swift?

Met forced unwrapping kun je een optional ‘uitpakken’. Een optional is een variabele die wel of geen waarde bevat: als de optional ‘leeg’ is, is hij nil.

Forced unwrapping werkt door achter de naam van de optional een uitroepteken te plaatsen. Maar let op: als je op die manier probeert om een optional uit te pakken die nil is (en dus geen waarde bevat), is een crash het gevolg.

var optionalA: Int? // een optional
var optionalB: Int? = 20 // een niet-lege optional

let c = optionalB! // C bevat nu de waarde 20
// let d = optionalA! // Commentaar weghalen: crash!

Op de derde programmaregel wordt de variabele optionalB ‘uitgepakt’ door er een uitroepteken achter te zetten. Het resultaat hiervan is dat de constante c nu de waarde 20 bevat.

Als je de commentaarsymbolen aan het begin van de laatste regel zou weghalen, is een crash het gevolg. Immers, optionalA is nil (hij bevat geen waarde) en forced unwrapping is dan niet toegestaan.

Related entries