Lucas Teixeira

@lucastex

Maravilhas do Groovy: Elvis Operator

com 8 comentários

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. :)

Postado por Lucas Teixeira

October 22nd, 2009 at 12:09 pm

8 Respostas a 'Maravilhas do Groovy: Elvis Operator'

Receber novos comentários por RSS or TrackBack to 'Maravilhas do Groovy: Elvis Operator'.

  1. 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

  2. @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

  3. [...] 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: [...]

  4. 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

  5. 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

  6. Paulo Suzart

    22 Oct 09 at 18:16

  7. O Elvis Operator em #Groovy (http://is.gd/4wl0m) e em #Scala (http://is.gd/4wjz3) Comentem!

    lucastex

    22 Oct 09 at 18:16

  8. 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

Deixe um comentário

Get Adobe Flash playerPlugin by wpburn.com wordpress themes