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 utilizando opcionales. Un opcional dice "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 podría 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 en Swift que ayuda a prevenir cierres inesperados por valores faltantes no previstos.
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 en su interior, necesitas desenvolver el opcional — lo cual cubriremos en las próximas lecciones.
Desafío
FácilEscribe una función createOptional que tome un número y devuelva una cadena que muestre cómo se vería ese número al imprimirse como un opcional.
Cuando imprimes un opcional que contiene un valor, Swift lo muestra en el formato Optional(value).
Recordatorio de sintaxis de funciones: En Swift, una función que devuelve un valor utiliza 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 la cadena de retorno utilizando interpolación de cadenas: "Optional(\(value))" — la parte \(value) inserta el número directamente en la cadena.
Parámetros:
value(Int): El número a envolver en formato opcional
Devuelve: Una cadena en el formato Optional(value) donde value es el número proporcionado.
Ejemplo: Si la entrada es 100, devuelve "Optional(100)"
Hoja de referencia
En Swift, los optionals (opcionales) representan la ausencia o presencia de un valor. Un opcional puede contener un valor o ser nil.
Para declarar un opcional, añade un signo de interrogación ? después del tipo:
var nickname: String? = "Alex"
var age: Int? = nilLas variables regulares no pueden ser nil, pero los opcionales sí. Usa nil para representar "ningún valor":
var score: Int? = 100
score = nilAl imprimir un opcional con un valor, Swift lo muestra como Optional(value):
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilPruébalo tú mismo
func createOptional(value: Int) -> String {
// Escribe el código aquí
}
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ámica