我有一个布尔元素列表:
def list=[true,false,true,true]
Run Code Online (Sandbox Code Playgroud)
我问是否存在如下方法:
list.joinBoolean('&&')
Run Code Online (Sandbox Code Playgroud)
<false
因为:true && false && true && true = false
list.joinBoolean('||')
Run Code Online (Sandbox Code Playgroud)
<true
因为:true || 假|| 真|| 真=真
如果它不存在,我知道如何进行循环以获得预期的结果;
和
boolean tmp=true;
list.each{e->
tmp=tmp && e;
}
return tmp;
Run Code Online (Sandbox Code Playgroud)
要么
boolean tmp=false;
list.each{e->
tmp=tmp || e;
}
return tmp;
Run Code Online (Sandbox Code Playgroud)
或者:
list.inject { a, b -> a && b }
list.inject { a, b -> a || b }
Run Code Online (Sandbox Code Playgroud)
如果list可以为空,则需要使用更长的注入形式:
list.inject(false) { a, b -> a && b }
list.inject(false) { a, b -> a || b }
Run Code Online (Sandbox Code Playgroud)
或者使用下面的any和方法every
其他答案中提到的 和 函数的工作原理如下any:every
list.any()
list.every()
Run Code Online (Sandbox Code Playgroud)
或者(更长的形式)
list.any { it == true }
list.every { it == true }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1633 次 |
| 最近记录: |