Groovy中each、find跳出循环

groovy中each、find方法是一个闭包操作,要想跳出循环要使用 return true,但有几个问题有待研究:
1、groovy each 中的return true 相当于Java中的continue ,
2、groovy find中的return true 相当于Java中的break,


each例子:

def a = [1, 2, 3, 4]
a.each {
    if (it == 2)
        return true // 满足条件本轮循环结束
 println it
}
println "-----------------------"
a.each {
    if (it >= 2)
        return true // 满足条件本轮循环结束
 println it
}

结果:

find例子: 

def a = [1, 2, 3, 4]
a.find {
    if (it == 2)
        return true // break
 println it
}
println "-----------------------"
a.find {
    if (it >= 2)
        return true // break
 println it
}

结果:

区别:

 上面的那个会一直遍历,然后只要满足IOU>0,就会将ISWEARBELT置为true,然后跳出循环,不会再遍历了。

而下边的那个是也是一直遍历,然后只要满足iou>0,还会满足人和梯子坐标位置关系,才会置为true,如果不满足这个关系,就会跳出循环,不再遍历。

这里的疑问就是只要找到一个合适的就跳出循环了,难道不会有两个合适的吗?其实答案很简单,因为上面这些程序是在person里面遍历的,每一个人还是会继续遍历的,所以是一样的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值