Menu
CoddyTech

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 que pode ser nula, seguido do valor de fallback:

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 será 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 ainda, ele oferece uma maneira simples de converter tipos anuláveis em valores não anuláveis com padrões sensatos.

challenge icon

Desafio

Fácil

Uma encomenda tem um rótulo de rastreamento opcional e um destino opcional. O código inicial fornece ambos os valores anuláveis. Use ?: para escolher "Pending" quando o rótulo de rastreamento estiver ausente e "Unassigned" quando o destino estiver ausente. Imprima o rótulo escolhido 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