Menu
Coddy logo textTech

Operador de Coalescência Nula

Parte da seção Fundamentos do Journey de Swift da Coddy. Lição 14 de 86.

Às vezes, você só quer fornecer um valor padrão quando um opcional é nil, sem escrever várias linhas de código. O operador de coalescência nula do Swift (??) faz exatamente isso — ele desempacota um opcional se ele tiver um valor, ou retorna um valor padrão se for nil.

let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guest

Como nickname é nil, o operador retorna "Guest" em vez disso. Se nickname tivesse um valor, esse valor seria usado.

let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoder

O operador de coalescência nula é perfeito para instruções de uma única linha onde você precisa de um valor de fallback. É mais limpo do que escrever uma instrução if let quando você simplesmente deseja substituir nil por um valor padrão. O resultado é sempre um valor não opcional, então você pode usá-lo diretamente sem a necessidade de desembrulhar (unwrapping) adicional.

challenge icon

Desafio

Fácil

Escreva uma função getDisplayName que recebe um username opcional e um defaultName, e então retorna o nome de exibição apropriado usando o operador de coalescência nula (nil coalescing operator).

Se o username estiver vazio (representado por uma string vazia ""), trate-o como nil e retorne o nome padrão. Caso contrário, retorne o username.

Parâmetros:

  • username (String): O nome do usuário (uma string vazia representa nil)
  • defaultName (String): O nome de reserva (fallback) a ser usado

Retorna: O username se não estiver vazio, caso contrário, o defaultName.

Dica: Converta o username para um opcional dentro da sua função — se estiver vazio, torne-o nil. Em seguida, use ?? para fornecer o valor de reserva.

Experimente você mesmo

func getDisplayName(username: String, defaultName: String) -> String {
    // Escreva o código aqui
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Swift