Menu
Coddy logo textTech

Operador Elvis

Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 15 de 93.

O operador de chamada segura é ótimo para evitar falhas, mas às vezes você precisa de um valor real em vez de null. O operador Elvis ?: permite fornecer um valor padrão quando uma expressão é null.

A sintaxe é simples: coloque ?: após uma expressão anulável, seguido pelo valor alternativo:

fun main() {
    val name: String? = null
    val displayName = name ?: "Guest"
    println(displayName)  // Imprime: Guest
}

Se o lado esquerdo não for nulo, esse valor será usado. Se for nulo, o lado direito se tornará o resultado. Isso funciona perfeitamente com chamadas seguras:

fun main() {
    val text: String? = null
    val length = text?.length ?: 0
    println(length)  // Imprime: 0
    
    val greeting: String? = "Hello"
    val greetingLength = greeting?.length ?: 0
    println(greetingLength)  // Imprime: 5
}

O operador recebe esse nome porque ?: se parece com o cabelo de Elvis quando visto de lado. Mais importante, ele oferece uma maneira clara de converter tipos anuláveis em valores não anuláveis com valores padrão sensatos.

challenge icon

Desafio

Fácil

Uma encomenda tem uma etiqueta de rastreamento opcional e um destino opcional. O código inicial fornece ambos os valores anuláveis. Use ?: para escolher "Pending" quando a etiqueta de rastreamento estiver ausente e "Unassigned" quando o destino estiver ausente. Imprima a etiqueta escolhida e, em seguida, o destino escolhido, em linhas separadas.

Experimente você mesmo

fun main() {
    val trackingLabel: String? = null
    val destination: String? = "Harbor"
    // Escolha e imprima os dois valores de exibição.
}
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 Kotlin