Programación de Apps iOS para iPhone con Swift y SwiftUI - LaFactoríaApple

Introducción a los Opcionales en Swift

Cuando declaramos una Variable o Constante de Tipo Opcional, estamos indicando que podría no tener valor.

Para definir un Opcional agregaremos un signo de interrogación ? junto a la declaración del Tipo de Dato.

var edad : Int?

En este ejemplo, al declarar como Opcional la variable edad, estamos indicando que es posible que no se le asigne valor (ausencia de valor), en cuyo caso su valor será nil (nulo). En Swift ser nulo significa desconocer su valor.

Cualquier Instancia que potencialmente pueda ser nil (no tenga valor asignado) debe declararse como Opcional. Si una Instancia no se declara como Opcional, entonces estaremos seguros que va a tener valor.

Volvamos a nuestro ejemplo, veamos que pasa si no le asignamos valor a la Variable edad.

var edad : Int?
print(edad)

Como era de esperar, edad toma el valor nil.

Veamos ahora que pasa si asignamos valor a la Variable edad.

var edad : Int?
edad = 25    
print(edad)

En este caso, la Variable edad toma el valor Optional(25) y además Xcode nos muestra una advertencia indicando que tenemos que desencapsular ese valor.

Llegados a este punto, nos queda claro que un Opcional o es nulo (nil) o tiene un valor válido disponible para ser utilizado.

var edad : Int?
edad = 25    
print(edad)
edad = nil  
print(edad)

El valor nil no puede asignarse a Variables o Constantes que no sean Opcionales.

var edad : Int
edad = nil   
print(edad)

Cuando declaramos una Variable como Opcional sin asignarle ningún valor, entonces su valor por defecto es nil

var edad : Int?
print(edad)

Más en esta Sección

  • Operador Nil-Coalescing

  • Desencapsulamiento Implícito

  • Optional Binding

  • Forced Unwrapping