2009年7月1日水曜日

simple groovy code reading - operators

Groovyには, Javaに較べて多くの演算子があります. またJavaでは単なる構文要素であるものが, 演算子として再定義できたりします. それらはとても便利なのですが,



  • どんな演算子が使えるか


  • 使えたとして優先順位はどうなのか


  • 多重定義する時のメソッド名は


など, なかなかまとまって調べられる場所もないのです...


そういうときには org.codehaus.groovy.syntax.Types を見てみましょう (えーと, あまり本気にしない方がいいかも知れませんよ:-) 特によい子は真似しないように).


ここには演算子のシンボル定義や優先度が書かれています.


だからてっきり, is()に相当する "===" (昔はあった) が使えるものかと思ってやってみると...


groovy:000> 1 === 1


ERROR org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, groovysh_parse: 1: unexpected token: = @ line 1, column 5.


   1 === 1


   ^


1 error


   at java_lang_Runnable$run.call (Unknown Source)


駄目っぽいですね(^_^;)

コードの一部だけ見て, 信用しちゃいけないって, 教訓です.