Menu
Coddy logo textTech

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) // Guest

Como 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) // SwiftCoder

El 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.

challenge icon

Desafío

Fácil
Escribe 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í
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de Swift