Menu
Coddy logo textTech

Operador de Coalescência de Nil

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 de nil 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 de nil é perfeito para instruções de uma linha em que você precisa de um valor de fallback. Ele é mais limpo do que escrever uma instrução if let quando você simplesmente quer substituir nil por um valor default. O resultado é sempre um valor não opcional, então você pode usá-lo diretamente sem precisar desembrulhá-lo depois.

challenge icon

Desafio

Fácil
Escreva uma função getDisplayName que receba um username opcional e um defaultName, e então retorne o nome de exibição apropriado usando o operador de coalescência nula.

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

Parâmetros:

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

Retorno: O nome de usuário se ele não estiver vazio; caso contrário, defaultName.

Dica: Dentro da sua função, armazene o nome de usuário em uma variável String? e, se o nome de usuário for igual a "", defina essa variável como nil usando um if simples. Em seguida, use ?? para fornecer o valor alternativo.

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