Qué son los opcionales
Parte de la sección Fundamentos del Journey de Swift de Coddy. Lección 11 de 86.
A veces, es posible que una variable no tenga ningún valor. En Swift, representamos la ausencia de un valor usando optionals. Un optional dice "hay un valor y es igual a x" o "no hay ningún valor en absoluto".
Para declarar un optional, 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 que tiene Swift de decir "sin valor". Las variables normales no pueden ser nil, pero los opcionales sí pueden.
Piensa en un opcional como una caja que puede contener algo o puede estar vacía. Antes de usar lo que hay dentro, necesitas comprobar si realmente hay algo allí. Esta es una función de seguridad clave en Swift que ayuda a prevenir fallos por valores faltantes no esperados.
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilObserva que cuando imprimes un optional con un valor, muestra Optional(100) en lugar de solo 100. Para acceder al valor real en su interior, necesitas desempaquetar el optional, lo cual cubriremos en las próximas lecciones.
Desafío
FácilEscribe una función createOptional que tome un número y devuelva un string que muestre cómo se vería ese número al imprimirse como un opcional.
Importante: esta función devuelve un String. Estás escribiendo texto que se parece a un opcional, no estás devolviendo un valor opcional real.
Cuando imprimes un opcional que contiene un valor, Swift lo muestra con el formato Optional(value).
Recordatorio de sintaxis de 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 enviar de vuelta el resultado. Por ejemplo:
func myFunction(param: Int) -> String {<br> return "result"<br>}
Puedes construir el string de retorno usando interpolación de strings: "Optional(\(value))" — la parte \(value) inserta el número directamente dentro del string.
Parámetros:
value(Int): El número a envolver en formato opcional
Devuelve: Un string 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 de móduloAsignación compuestaResumen - Matemáticas simplesOperadores de comparación7E/S Básica
Función PrintInterpolación de StringsEntrada ReadLineConversión de TiposRepaso - Hasta 120Repaso - Verdadero o Falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosResumen - Función SigmaResumen - Función de validaciónValores por defecto13Iterar sobre secuencias
Iterar sobre elementosEl método enumerateIterar sobre cadenas P1Iterar sobre cadenas P22Variables
Let vs VarAnotaciones de tiposNúmerosStringsBooleanosConvenciones de nomenclaturaResumen - 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 bienvenidaObtener la entrada de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesempaquetado con If LetGuard LetOperador de coalescencia nulaResumen - Desempaquetado seguro6Toma 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