Groovy 是否有任何方法(开箱即用)类似于 LINQ 中的 DefaultIfEmpty 或 FirstOrDefault 方法?
最佳答案
DefaultIfEmpty
可以覆盖:
def list = []
def defaultIfEmpty = list ?: [ 'was empty' ]
FirstOrDefault
比较棘手,因为我相信如果列表中没有第一个元素,它会返回给定类型的默认值......但是,在 Groovy 中(目前),无法检测对象的默认类型(除非它是 native 类型)你可以这样做:
Integer defaultIfEmpty = list[ 0 ] ?: 0
然而,应该注意的是
elvis operator ?:
作用于 Groovy truth ,所以如果运算符左侧的元素在 Groovy 中计算为 false(无论是 null
、空列表或字符串、数字 0 等),它将返回右侧手边)还要注意的是,我不是.NET专家,所以可能对这两个函数的功能有误。
关于linq - 类似于 LINQ 的 DefaultIfEmpty 和 FirstOrDefault 的 Groovy 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10225658/