Groovy で、partition by parity を解いている時に、またちょっと、うざい挙動にぶちあたった。 m="10 11 12".split()*.toLong().groupBy{it%2} println"$m" //-> [0:[10, 12], 1:[11]] println"${m[0]}" //-> null println"${m[1]}" //-> nullとなる。なんで、null なの?しばらく悩んだ。 答えは、 println"${m[0L]}" //-> [10, 12] println"${m[1L]}" //-> [11]ということ。つまり、マップの key が Integer オブジェクトではなく、Long オブジェクトになっているためだ。int と long の計算を行うときは、long にプロモートされるということがあるが、ここでは、そういった