Groovyのsumメソッドは空のListで実行するとnullが返ってくる
GroovyではCollectionクラスにsumメソッドがあります。
assert [1,2,3,4,5,6].sum() == 21
普通に使っている分にはいいですが、空のListだとnullが返ってきたので驚きました。。。
assert [].sum{} == null
で、Twitterで呟いたら。。。
こんな風にやればいいっぽい。
assert [].inject(0) { x,y -> x+y } == 0
実コードではsumにクロージャ渡してたので、同じようにListとクロージャ渡すようにして解決しました。
def sum = {l,c->l.inject(0) { x,y -> x + c(y) }}