Optionals

Optionals permiten indicar la ausencia de un valor para cualquier tipo de dato, cuando declaramos variables y constantes.

Una vez que revisamos los tipos de datos en la declaración y asignación de variables y constantes, podemos tratar el caso de optionals ya que se los puede utilizar en el caso particular donde no se tiene el valor.

Optionals permiten indicar la ausencia de un valor para cualquier tipo de dato, es decir que podemos declarar una variable/constante de cualquier tipo de dato que a su vez puede ser asignado nil añadiendo ? al tipo de dato, por ejemplo:

var n: Int? = 100
n = nil

solo se puede asignar nil a una variable o constante cuyo tipo se haya marcado cómo optional

Cuando declaramos una variable o constante marcando el tipo de dato cómo optional y no asignamos un valor, este toma el valor de nil de manera automática.

var n: Int?

En este caso n tiene el valor de nil automaticamente.

Dado que hemos marcado al tipo de dato como optional necesitamos de un marcador especial ! en la variable o constante para acceder al valor a través de la variable o constante.

var n: Int? = 100
print(n!)
// se muestra 100 en pantalla

Debemos tener en cuenta que estamos accediendo al valor, pero que sucede si no hay un valor y la variable/constante contiene nil ?

var n: Int?
print(n!)
// esto resultaría en un error de ejecución, se terminaría abruptamente el programa

Es muy util que la variable o constante se pueda definir de manera que no contenga valor alguno, pero por lo mismo hay que tener cuidado al momento de acceder al valor ya que si no existe resultaria en el error antes mencionado.