Qué son los opcionales
Parte de la sección Fundamentos del Journey de Swift de Coddy. Lección 11 de 86.
A veces una variable puede no tener ningún valor. En Swift, representamos la ausencia de un valor mediante los opcionales. Un opcional indica «hay un valor y es igual a x» o «no hay ningún valor».
Para declarar un opcional, añade un signo de interrogación ? después del tipo:
var nickname: String? = "Alex"
var age: Int? = nilEn el ejemplo anterior, nickname contiene el valor "Alex", mientras que age contiene nil: la forma de Swift de decir «sin valor». Las variables normales no pueden ser nil, pero los opcionales sí.
Piensa en un opcional como una caja que podría contener algo o estar vacía. Antes de usar lo que hay dentro, debes comprobar si realmente hay algo allí. Esta es una característica de seguridad clave de Swift que ayuda a evitar fallos causados por valores ausentes inesperados.
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilObserva que cuando imprimes un opcional con un valor, muestra Optional(100) en lugar de simplemente 100. Para acceder al valor real que contiene, necesitas desenvolver el opcional, lo que veremos en las próximas lecciones.
Desafío
FácilEscribe una función createOptional que reciba un número y devuelva una cadena que muestre cómo se vería ese número al imprimirlo como un valor opcional.
Importante: esta función devuelve un String. Estás escribiendo texto que tiene el aspecto de un valor opcional; no estás devolviendo un valor opcional real.
Cuando imprimes un valor opcional que contiene un valor, Swift lo muestra con el formato Optional(value).
Recordatorio sobre la sintaxis de las funciones: en Swift, una función que devuelve un valor usa la flecha -> para especificar el tipo de retorno y la palabra clave return para devolver el resultado. Por ejemplo:
func myFunction(param: Int) -> String {<br> return "result"<br>}
Puedes construir la cadena de retorno mediante interpolación de cadenas: "Optional(\(value))": la parte \(value) inserta el número directamente en la cadena.
Parámetros:
value(Int): El número que se envolverá en el formato opcional
Devuelve: Una cadena con el formato Optional(value), donde value es el número proporcionado.
Ejemplo: Si la entrada es 100, devuelve "Optional(100)"
Pruébalo tú mismo
func createOptional(value: Int) -> String {
// Devuelve un String que parece un optional, no un optional real
// Inserta el número entre los paréntesis usando interpolación de strings
return "Optional()"
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosOperador móduloAsignación compuestaRepaso: matemáticas simplesOperadores de comparación7Entrada/salida básica
Función printInterpolación de cadenasEntrada con ReadLineConversión de tiposRepaso: hasta 120Repaso: verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosRepaso: función SigmaRepaso: función de validaciónValores predeterminados13Iteración sobre secuencias
Iteración sobre elementosEl método enumeradoIteración sobre cadenas P1Iteración sobre cadenas P22Variables
Let vs VarAnotaciones de tipoNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: inicializar variables5Operadores, parte 2
Operadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simpleOperadores lógicos, parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtención de datos11FizzBuzz con un giro
Descripción del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesenvolver con If LetGuard LetOperador de coalescencia nilRepaso: desenvoltura segura6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámicaPractica por tu cuenta: Playground de Swift