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
Leticia 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!

All DEV content is created by the community!

Hey, if you're landing here for the first time, you should know that this website is a global community of folks who blog about their experiences to help folks like you out.

Sign up now if you're curious. It's free!