Avatar ·

O que faz o operador ?: em Kotlin? (Operador Elvis)

Olá! Acabei de começar a estudar Kotlin depois de Java e me deparei com um operador estranho ?:. Vi ele em código de outra pessoa, mas não consigo entender o que ele faz. Aqui está um exemplo que encontrei: ```kotlin val name: String? = null val displayName = name ?: "Convidado" println(displayName) // Imprime "Convidado" ``` Se eu escrever a mesma coisa usando if-else, leva 3-4 linhas. Então ?: é algum tipo de sintaxe abreviada? Mas não tenho certeza quando devo usá-lo e quando é melhor usar uma verificação normal. Também vi este código estranho: ```kotlin val length = text?.length ?: 0 ``` Aqui primeiro vem ?. (chamada segura) e depois ?:. Isso é legal? E o que acontece se text for null? Explique, por favor, como este operador funciona, como ele difere do if-else comum e se há