Menu
CoddyTech

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. Desenvolverá un opcional si tiene un valor, o devolverá 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 nil es perfecto para las expresiones de una sola línea en las que necesitas un valor alternativo. Es más claro que escribir una instrucción if let cuando simplemente quieres sustituir nil por un valor predeterminado. Cuando el valor predeterminado no es opcional, el resultado tampoco lo es, así que puedes usarlo directamente sin desenvolverlo más.

challenge icon

Desafío

Fácil
Escribe una función getDisplayName que tome un username opcional y un defaultName, y después devuelva el nombre para mostrar adecuado mediante 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 usará

Devuelve: El nombre de usuario si no está vacío; de lo contrario, defaultName.

Pista: Dentro de tu función, guarda el nombre de usuario en una variable String? y, si el nombre de usuario es igual a "", asigna nil a esa variable mediante un sencillo if. 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