Groovy 是否有任何方法(开箱即用)类似于 LINQ 中的 DefaultIfEmpty 或 FirstOrDefault 方法?
问问题
1055 次
1 回答
3
DefaultIfEmpty
可以覆盖:
def list = []
def defaultIfEmpty = list ?: [ 'was empty' ]
FirstOrDefault
更棘手,因为我相信如果列表中没有第一个元素,它会返回给定类型的默认值......但是,在 Groovy(就目前而言)中,无法检测对象的默认类型(除非它是原生类型)
你可以这样做:
Integer defaultIfEmpty = list[ 0 ] ?: 0
然而应该注意的是elvis operator ?:
Groovy的真值,所以如果运算符左侧的元素在 Groovy 中的计算结果为 false(无论是null
空列表还是字符串,数字 0 等),它将返回右手边)
还需要注意的是,我不是 .NET 专家,所以这两个函数的功能可能不正确。
于 2012-04-19T10:24:09.273 回答