微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

连接布尔元素groovy的列表

我有一个布尔元素列表:

def list=[true,false,true,true]

我问是否存在如下方法

list.joinBoolean('&&')

<假

因为:真实&&虚假&&真实&&真=假

list.joinBoolean('||')

<真正

因为:true ||假||真||真=真

如果它不存在,我知道如何进行循环以获得预期的结果;

boolean tmp=true;
  list.each{e->
     tmp=tmp && e;    
  }
   return tmp;

要么

boolean tmp=false;
  list.each{e->
     tmp=tmp || e;    
  }
   return tmp;

解决方法

要么:

list.inject { a,b -> a && b }
list.inject { a,b -> a || b }

如果列表可以为空,则需要使用更长的注入形式:

list.inject(false) { a,b -> a && b }
list.inject(false) { a,b -> a || b }

或者使用以下任何一种方法

顺便说一句

其他答案中提到的任何和所有功能的工作方式如下:

list.any()
list.every()

或者(更长的形式)

list.any { it == true }
list.every { it == true }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐