Básico 04 – Opcionales

Los opcionales juegan un papel muy importante en el desarrollo de aplicaciones móviles para iOS, han hecho que Swift sea mucho menos propenso a errores, pero esto no quiere decir que aún no vayamos a cometer alguno en el futuro, para evitar esto esta publicación te ayudara a entenderlos y ver sus principales usos así como las buenas prácticas que deben tener los opcionales.

Los opcionales se usan para aquellas situaciones donde hay ausencia de valores o datos, teniendo esto en mente al momento de desenvolver el opcional hay dos posibles resultados: obtienes el valor o no hay valor en absoluto. Esto puede sonar un poco raro, pero veamos algunos ejemplos:

// La forma en que declaramos un opcional es colocar después del tipo de variable el símbolo de cierre de pregunta ? esto indicara al compilador que nuestra variable es opcional, ósea que puede tener o no un valor.

var nombre_opcional: String? = "Puede haber texto"
nombre_opcional = nil

Para empezar, solo puedes tener valores opcionales en variables, nunca podrás iniciar una constante con un valor ‘nil‘ directamente, pero si habrá ocasiones donde a una constante se le asigne el valor de una variable opcional, para estos casos necesitamos desenvolver nuestra variable.

Otra manera en la que podemos declarar nuestra variable es de la siguiente manera:

var nombre_variable_opcional: Int?

De esta manera aunque no asignes un valor inicial el compilador de Swift asignara ‘nil‘ automáticamente por ti.

Unwrapping

La manera más fácil en que podemos desenvolver alguna variable o algún objeto es la siguiente:

// La forma más rápida de desenvolver una variable es usando ! al final de esta.

var pokemonNumbers: Int? = 10
let pokemonTotal = pokemonNumbers!

A esta manera de desenvolver una variable se le conoce como force unwrapping, el problema de esta forma es que, en caso de que no exista algún valor al momento de desenvolver, nuestra aplicación va a marcar un error mientras se está ejecutando y por ende puede terminar en un cierre inesperado. Por tal motivo, esta práctica es la menos recomendada para desenvolver un valor, así que trata de evitar usarla de manera cotidiana.

La siguiente manera no desenvuelve el valor, pero evalúa su contenido y en caso de tener un valor ejecuta una serie de declaraciones:

// Esta opción es usando if y retomando el valor del ejemplo anterior.

if pokemonNumber != nil {
   print("Tenemos el valor de numero de pokemon")
}

Optional Binding

La siguiente manera de evaluar una variable opcional nos crea como consecuencia una constante, que solo está disponible dentro de la condición que lo crea y siempre y cuando el valor de esta sea diferente de nil. Veamos como se utiliza en el siguiente ejemplo.

var variableOpcional: String? = "Contiene un valor"

if let variableValor = variableOpcional {
   print("La variable: /(variableValor)")
}

Deja un comentario