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
不错,有时侯这些旧的语法还有是用途的。
?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |