加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy Tip 2 each方法和break

发布时间:2020-12-14 17:00:33 所属栏目:大数据 来源:网络整理
导读:????????? Groovy Tip 2 each 方法和 break ? 在 Groovy 这样的动态语言中,闭包是其中的一个重要武器。而这些语言的开发者自然不会放弃使用这些武器,我们可以看到在 Groovy 语言的集合类中,广泛的使用了闭包。其中, each 方法就是这样一个使用闭包的方法
????????? Groovy Tip 2 each 方法和break
?
Groovy 这样的动态语言中,闭包是其中的一个重要武器。而这些语言的开发者自然不会放弃使用这些武器,我们可以看到在 Groovy 语言的集合类中,广泛的使用了闭包。其中, each 方法就是这样一个使用闭包的方法。
我们知道,在 Java 中,我们使用下面的语句对集合类对象进行遍历:
?? ? for ( int i= 0 ;i<list. size ();i++)
?? ?{
????? ?System.out. println (list.get(i))
?? ?}
而在 Groovy 语言中,我们使用 each 方法对集合类对象进行遍历:
??? ?list. each {
?????? ?it ->
?????? ?? println it
?}
已经比起传统的 for 循环语句来说简单得多,但仍然可以更简单:
??? ?list. each {
?????? ?? println it
?}
这是因为在默认情况下, each 方法的输入参数为 it
如果我们想通过 each 方法获取集合类对象中的元素位置时,应该这样使用:
??? ?list.eachWithIndex{
?????? ?i,it ->
?????? ?? println "port: $i value: $it"
?}
下面,我们定义一个 List 对象:
def list = [ 1 , 5 , 6 , 2 , 7 ]
现在,我想要判断上面的集合对象中是否大于 5 的元素:
??? def have = false
??? list. each {
?????? if (it> 5 )
?????? {
?????????? have = true
?????????? break ;
?????? }
??? }
???
println have
?
结果却发现该 break 语言编译不过去。怎么办?
??? def have = false
??? for (it in list){
?????? if (it> 5 )
?????? {
?????????? have = true
?????????? break ;
?????? }
??? }
???
println have
不错,有时侯这些旧的语法还有是用途的。
?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读