Maravilhas do Groovy: Elvis Operator
Nova categoria de posts “Maravilhas do Groovy”, inspirada pelo MrHaki e seus posts sobre o diferencial e tricks que o groovy oferece.
O Elvis Operator é um operador em Groovy (já estará embutido no Java7) representado pelo “ponto de interrogação” seguido pelos caracteres “dois pontos” ou seja ?:
O objetivo é fazer a comparação do valor de uma referencia a null, para decidir sobre uma atribuição de valor. Um exemplo bem comum é comparar o um parametro que vem do request de qual página irá ser mostrada de uma lista de objetos, porém, caso a página não esteja presente, devemos sempre mostrar a primeira página.
Tradicionalmente, em java, com o operador ternário:
Integer pageParam = (...) pageParam = (pageParam == null) ? 1 : pageparam;
Com o elvis operator, ele já faz esta comparação implicitamente e caso o valor da variável seja null, recebe o valor que está a direita do operador.
def pageParam = (...) pageParam = pageParam ?: 1
— Post editado as 18:10 do dia 22/10 —
Meu amigo @paulosuzart do CodeMountain fez um post sobre o Elvis Operator em Scala.
A gente sabe que não existe, mas ele criou um. Vale a pena conferir. :)
A informação que eu tenho (http://mail.openjdk.java.net/pipermail/coin-dev/2009-August/002173.html) é de que o Elvis Operator não foi aceito para inclusão no Java 7. Você tem alguma informação mais recente em contrário?
Daniel Sobral
22 Oct 09 at 17:22
@DanielSobral
Oi Daniel, tudo bem? A informação que eu tinha (http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000047.html) insere ele e o safe navigation, mas pelo visto é mais antiga que a sua né?
Obrigado pelo toque, vou procurar alguma coisa até mais recente que esta, e alterar o post.
(Bom, mas continuo torcendo é claro, para que entre!)
Obrigado!
Lucas Teixeira
22 Oct 09 at 17:44
[...] Elvis Operator? Crie um! Meu querido amigo @lucastex Postou sobre Elvis operator em Groovy. Ele também me perguntou se Scala tinha este operador. E eu disse: [...]
Sem Elvis Operator? Crie um! « Codemountain, Paulo Suzart's Blog
22 Oct 09 at 17:57
Post bacana. Sem dúvida são operadores úteis, que nosso Java do pão nosso de cada dia não tem.
Veja como criar seu Elvis operator em Scala: http://is.gd/4wjz3.
;)
Paulo Suzart
22 Oct 09 at 18:01
O Elvis Operator em #Groovy (http://is.gd/4wl0m) e em #Scala (http://is.gd/4wjz3) Comentem!
Lucas Teixeira
22 Oct 09 at 18:16
RT @lucastex: O Elvis Operator em #Groovy (http://is.gd/4wl0m) e em #Scala (http://is.gd/4wjz3) Comentem!
Paulo Suzart
22 Oct 09 at 18:16
O Elvis Operator em #Groovy (http://is.gd/4wl0m) e em #Scala (http://is.gd/4wjz3) Comentem!
lucastex
22 Oct 09 at 18:16
RT @lucastex: O Elvis Operator em #Groovy (http://is.gd/4wl0m) e em #Scala (http://is.gd/4wjz3) Comentem!
paulosuzart
22 Oct 09 at 18:16