配列のように順次取り出せる構造になっている対象に対するeachは各要素でブロックを実行し、そうでない場合は自分自身で一回だけブロックを実行している模様。
def a = new Expando() a.id="id_a" [a].each{ println it } /* 結果: {id=id_a} */ a.each{ println it } /* 結果: {id=id_a} */
["abc"].each{ println it } /* 結果: "abc" */ "abc".each{ println it } /* 結果: a b c */