クロージャ
JavaSEで入るとか入らないとか含めまだ揺れそうなクロージャだけど、個人的にBGGAの
public static <V> void for each(Iterable<V> collection, { V => void } block) { for (V v : collection) block(v); }
が気に入っている。
eachメソッドはジェネリックメソッドで、第二引数にVを受け取り戻り値がないクロージャを受け取る。
で、これの使い方は
int[] ls = {1,2,3,4,5}; int total = 0; for each(int i : ls) total += i;
と、
ls = [1,2,3,4,5] total = 0 ls.each {|i| total += i }
Rubyで書いたのと比べてかなりコード量が近づいている*1。
あと個人的には拡張for文で
for (int i, j : ls1, ls2) { ... }
なり、
for (int i, int j : ls1, ls2) { ... }
なり書かせて欲しいんだけど、ここら辺は手を入れる気はないんだろうか。
*1:あくまで部分的に