DEV Community

Cover image for Como usar Elvis Operator
Lissa Ferreira for Kotlinautas

Posted on • Updated on

Como usar Elvis Operator

Kotlinautas

Esse conteúdo é oferecido e distribuído pela comunidade Kotlinautas, uma comunidade brasileira que busca oferecer conteúdo gratuito sobre a linguagem Kotlin em um espaço plural.

capa Kotlinautas

O quê é Null Safety?

Kotlin é uma linguagem que utiliza vários recursos de outras linguagens, e também melhoramentos, principalmente em relação ao Java.

Muitas pessoas que já programaram Java, tiveram problemas bem chatos envolvendo NullPointerExeception, que é um erro que ocorre quando tentamos usar uma propriedade de uma classe que tem seu valor como null.

A linguagem Kotlin tenta ao máximo evitar esse tipo de problema. Adicionando garantias que o seu código DEVE ser seguro á erros envolvendo instâncias de classes, variáveis, propriedades,etc. que podem ser nulas.

Para poder utilizar uma propriedade que pode ser nula, é necessário ou fazer o tratamento caso essa variável seja um erro, ou usando !! para dizer ao Kotlin que você tem certeza que não terá nenhum erro relacionado. Como no exemplo abaixo:

val nome = usuario!!.nome
Enter fullscreen mode Exit fullscreen mode
  • No exemplo acima, usuario pode ser uma variável nula, e por conta disso foi usado o símbolo !!, deixando claro ao Kotlinque temos certeza que essa variável não é null. Caso seja null, um erro vai ser lançado.

Podemos também como foi citado acima, tratar esse erro, buscando evitar o problema de termos um erro indesejado na nossa aplicação. E esse tratamento pode ser feito usando Elvis Operator

O quê é Elvis Operator?

Elvis Operator (?:) é um operador que podemos usar junto da propriedade ou variável que pode ter null como seu valor. da seguinte maneira:

repositorioPostagem.encontrar(10) ?:
Enter fullscreen mode Exit fullscreen mode
  • Usamos um exemplo comum, um sistema onde precisamos pegar uma postagem (ou qualquer outro item que está guardado dentro do banco de dados), e caso essa postagem com esse ID 10 não seja encontrada, iremos usar o tratamento no Elvis Operator (que por enquanto não existe)
  • Elvis Operator tem esse formato de ?: por conta que parece com o cabelo do Elvis Presley.

A expressão á direita do Elvis Operator representa o quê vamos fazer caso essa propriedade ou variável seja nula. Podemos por exemplo, retornar a função:

fun pegarTituloDaPostagem(id: Int): String {
  return repositorioPostagem.encontrar(id).titulo ?: return "postagem não encontrada"
}
Enter fullscreen mode Exit fullscreen mode
  • Temos uma função que irá retornar o título de uma postagem. Caso a postagem não seja encontrada, a postagem será null, com isso o Elvis Operator irá fazer que a string postagem não encontrada seja retornada, pois não há nenhuma postagem relacionada com esse ID.

Esse exemplo é simples, mas há situações em que é realmente necessário usar um Elvis Operator para garantir que o seu código não vai dar nenhum erro inesperado, pois como o próprio nome diz, não tem como planejar quando um erro inesperado irá acontecer.

Finalização

Neste artigo você aprendeu como utilizar o Elvis Operator para tornar seu código mais legível e com melhor tratamento de erros. Evitando erros inesperados, deixando sua aplicação mais resiliente.

Muito obrigada por ler ❤️🏳️‍⚧️ e me segue nas redes, é tudo @lissatransborda 👀

Top comments (1)

Collapse
 
lelepg profile image
Letícia Pegoraro Garcez

A cada artigo que eu leio da comunidade Kotlinautas mais vontade de aprender Kotlin eu tenho. Elvis é simplesmente o melhor nome de operador que eu já vi até agora!