В отличном [] .sum () возвращает пустой указатель, когда я ожидаю 0
Согласно http://jira.codehaus.org/browse/GROOVY-2411 это ожидаемое поведение, поскольку sum () работает также для массива строк. Решение - использовать [] .sum (0), который вернет 0.
Если вам действительно нужен ноль с пустым списком, вы всегда можете использовать:
List foo = []
def bar = foo.sum() ?: 0
assert bar == 0
Оператор elvis будет оценивать только правую часть, если левая часть равна null.