连接布尔元素groovy的列表

Abd*_*UMI 6 groovy arraylist

我有一个布尔元素列表:

  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)

tim*_*tes 4

或者:

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


顺便提一句

其他答案中提到的 和 函数的工作原理如下anyevery

list.any()
list.every()
Run Code Online (Sandbox Code Playgroud)

或者(更长的形式)

list.any { it == true }
list.every { it == true }
Run Code Online (Sandbox Code Playgroud)