解决方法
DefaultIfEmpty可以包含在:
def list = [] def defaultIfEmpty = list ?: [ 'was empty' ]
FirstOrDefault比较复杂,因为我相信如果列表中没有第一个元素,它会返回给定类型的默认值…但是,在Groovy中(如它所示),没有办法检测对象的默认类型(除非它是原生类型)
你可以这样做:
Integer defaultIfEmpty = list[ 0 ] ?: 0
但是应该注意到elvis运算符?:在Groovy truth上工作,所以如果运算符左边的元素在Groovy中评估为false(无论是null,空列表或字符串,数字0等),它将返回右侧)