Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Ausência do operador ternário no Kotlin

Desde que foi apresentado no curso o "if expression" fiquei me perguntando por que utilizá-lo e não usar o operador ternário. Por exemplo, o seguinte excerto de código:

val titulo = if(tipo == Tipo.RECEITA) {
            R.string.adiciona_receita
        } else {
            R.string.adiciona_despesa
        }

Poderia ser, com o operador [condicional] ternário:

val titulo = tipo == Tipo.RECEITA ? R.string.adiciona_receita : R.string.adiciona_despesa
4 respostas

Vi que há uma discussão infinita sobre adicionar (ou não) o operador ternário no Kotlin aqui: https://discuss.kotlinlang.org/t/ternary-operator/2116/23 Ao que parece, devido ao "if expression" resolveram não colocá-lo na linguagem. De qualquer forma, senti falta dessa discussão no curso (houve, por exemplo, a apresentação da discussão sobre as "exceptions checked/unchecked" )

solução

Oi Adriano, tudo bem?

O operador ternário no Kotlin é um if expression sem as chaves, nesse caso ficaria assim:

val titulo = if(tipo == Tipo.RECEITA) R.string.adiciona_receita else R.string.adiciona_despesa

Até onde eu saiba não existe o operador ternário da maneira como vemos em outras linguagens. Provavelmente, conforme a linguagem for atualizado, alguém faça algum tipo de issue para que adicione tal feature.

[]s

Muito obrigado pela resposta Alex. Ela foi realmente rápida :)

Opa Adriano,

Fico contente que tenha o ajudado da maneira esperada, fique à vontade em entrar em contato com a gente quando surgir mais dúvidas :)

[]s