Menu
CoddyTech

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

challenge icon

Desafio

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

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

Retorna: O nome de usuário se não estiver vazio; caso contrário, o 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 com um simples if. 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