Operador de coalescencia nil
Parte de la sección Fundamentos del Journey de Swift de Coddy. Lección 14 de 86.
A veces solo quieres proporcionar un valor predeterminado cuando un opcional es nil, sin escribir varias líneas de código. El operador de coalescencia de nil de Swift (??) hace exactamente eso. Desenvuelve un opcional si tiene un valor o devuelve un valor predeterminado si es nil.
let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // GuestComo nickname es nil, el operador devuelve "Guest" en su lugar. Si nickname tuviera un valor, se usaría ese valor.
let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoderEl operador de coalescencia de nil es perfecto para expresiones de una sola línea en las que necesitas un valor alternativo. Es más limpio que escribir una instrucción if let cuando simplemente quieres sustituir nil por un valor predeterminado. El resultado siempre es un valor no opcional, por lo que puedes usarlo directamente sin desenvolverlo más.
Desafío
FácilEscribe una función getDisplayName que acepte un username opcional y un defaultName, y después devuelva el nombre para mostrar apropiado utilizando el operador de coalescencia nil.
Si el nombre de usuario está vacío (representado por una cadena vacía ""), trátalo como nil y devuelve el nombre predeterminado. De lo contrario, devuelve el nombre de usuario.
Parámetros:
username(String): El nombre del usuario (una cadena vacía representa nil)defaultName(String): El nombre alternativo que se utilizará
Devuelve: El nombre de usuario si no está vacío; de lo contrario, defaultName.
Sugerencia: Dentro de tu función, almacena el nombre de usuario en una variable String? y, si el nombre de usuario es igual a "", asigna nil a esa variable con un if sencillo. Después, usa ?? para proporcionar el valor alternativo.
Pruébalo tú mismo
func getDisplayName(username: String, defaultName: String) -> 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 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