配列リテラルの記述が、カンマが一個多くても正常に動作するよ

Groovy

いつものことですが、人のソースを見ているととても勉強になる。

作業予定表から週単位で作業量を積み上げる Groovyで どう書く?org

をのんびり見ているときのこと。

以下のようなソースの記述を見つけ、「あれ?カンマ一個多いな。」と思った。

// ワークプランリスト
def workPlanList = [
   new Plan(date:'2009/1/10', days: 21, mark:'#'),
   new Plan(date:'2009/1/15', days:  6, mark:'@'),
   new Plan(date:'2009/1/10', days:  8, mark:'*'),
   new Plan(date:'2009/1/16', days:  1, mark:'='),
   new Plan(date:'2009/1/16', days:  3, mark:'%'),
   new Plan(date:'2009/1/30', days:  4, mark:'='),
]

しかし、不思議なことに、これは正常に動作する。

もしやと思って以下のコードを実行してみると・・・

println([1, 2, 3, 4, 5, ])
println([1, 2, 3, 4, 5, ].size())

>> [1, 2, 3, 4, 5, ]

>> 5

あら、正常に動作した。最後のカンマは無視されるのかな?でも以下のようなコードはカンマが全行にあったほうがコーディングしやすい(マクロとか使うとき楽だし、こぴぺもしやすい)

def list = [
    "たろう",
    "はなこ",
    "さぶろう",
    "しろう",
]

面白い。

Groovy