uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

Groovyの奇妙な演算子(番外編)−エルビス演算子ー

ちょっと前にGroovy 1.5が正式公開となりました。

http://www.infoq.com/articles/groovy-1.5-new
http://journal.mycom.co.jp/news/2007/12/10/033/index.html

今まで「1.1」としてbeta->RC1->とやってきたのが、正式版として「1.5」に飛んだのは、おそらく、対応するJava言語(もしくはJdk)のバージョンに合わせるようにしたのではないかと思います。ひょっとしたら、今後もJava言語仕様のバージョンアップに追随させていくのかもしれません。


言語仕様の変更の内容は、今回の正式版発表であきらかになったわけではありませんが、おさらいとしていうと、Java 5のJavaへの言語拡張機能の取り込みが中心的です。上の記事中にもありますが、GroovyにおいてJava 5と同様に

が使えるようになっています(Groovy言語の中から使える、ということだけではなく、Javaで上の機能を使って書かれたものが使える、という側面があるものもあります)。


このほかに面白いと思ったのが「?:」の「elvis operator」、「エルビス演算子」って耳慣れない演算子が拡張されています。(*1)

なぜElvisかというと、スマイリーとして見るとわかる、とのこと。最初言ってる意味がわからなかったのですが、スマイリーって英語圏での顔文字のことだよな〜と思ってしばらく顔を横にして見つめていると、おお!確かにエルビスが!?:-)

洋楽でジョジョつながり、ではないですね。残念。


(*1)意味は、JavaやCにもある三項演算子(?:)の第一項と第二項が同じときに第二項を省略できる、つまりa?a:bをa?:bと書ける、というものです。この機能は、GNUCコンパイラの拡張、しかも私の記憶する限り最も初期の拡張に含まれてるのでGroovyの新アイデアというわけではありません。