Sem 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: Não, mas eu posso criar agora. E assim fiz:
implicit def toRockStar[B](v : B) = new { def ?: (opt: => B) : B =
if (opt == null) v else opt}
Se voce observar bem neste Post, eu criei o operador % aplicável a Strings para facilitar a configuração de alguns parâmetros em uma conexão com o RabbitMQ.
Então, para usarmos nosso Rock Start Elvis operator fazemos assim:
scala> val name : String = null name: String = null scala> val l = name ?: "Lucas" l: java.lang.String = Lucas // resultado deve ser Lucas scala> val p = l ?: "Paulo" // Resultado Deve ser Lucas p: java.lang.String = Lucas
A variável imutável p só deve receber o valor Paulo se a variável l não tiver sido atribuído a uma String. O Elvis aqui serve para qualquer tipo, pois foi construído de forma genérica com tipos parametrizados (ver o [B]).
Em Scala os operadors aritiméticos também são funções e não operadores da linguagem. Logo, existe a possibilidade de criação de qualquer operador com o nível de complexidade necessário para resolver o seu problema.
Foi um post curto, e um bate bola com o Lucas. Tento usar o público dele e de outras linguagens para atrair a atenção para Scala, uma linguagem sem dúvida promissora.
Com Scala é assim, não espere a linguagem criar um operador interessante como esse, simplesmente o faça.
[...] 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. [...]
Maravilhas do Groovy: Elvis Operator at Lucas Teixeira
outubro 22, 2009 em 8:11 pm
Show de bola, isso me lembra os tempos de C++ que permite a sobrecarga de operadores
. Scala é uma linguagem muito boa, penso q logo logo sera uma linguagem de peso no mundo dos negócios.
Abraao
outubro 22, 2009 em 8:27 pm
Social comments and analytics for this post…
This post was mentioned on Twitter by lucastex: O Elvis Operator em #Groovy (http://is.gd/4wl0m) e em #Scala (http://is.gd/4wjz3) Comentem!…
uberVU - social comments
outubro 23, 2009 em 2:37 am
Legal isso, eu to querendo um tempo para estudar paradigma funcional com Scala.
Felipe Cypriano
outubro 23, 2009 em 4:06 pm
Ótimo! Espero que as entradas no Blog possam ajudar de alguma forma. Postarei mais sobre Scala e FP em breve.
Obrigado por visitar.
paulosuzart
outubro 23, 2009 em 4:09 pm
Estou atualmente estudando Scala pois gostei da abordagem e da forma como a linguagem produz rapidos resultados.
Seus Post são bem colocados, obrigado pelos esclarecimentos !!!
Na Comunidade Java Livros tem links em Java Noticia onde vc também encontra referencia sobre Scala.
Abraçossss !!!!
Marcio Duran
janeiro 14, 2010 em 3:36 pm