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

Groovy Tip 17 “*.”操作符

发布时间:2020-12-14 16:59:20 所属栏目:大数据 来源:网络整理
导读:?????????????????????????? Groovy Tip 17 “ *. ”操作符 ? ? 我们都知道,Groovy语言对集合做了很多的简化,如each、collect等等。但是,Groovy语言觉得这些还不够,它要继续给我们提供更多的简化操作。今天我们要谈到的“ *. ”,就是其中的一个。 “ *.
?????????????????????????? Groovy Tip 17 “*.”操作符
?
?
我们都知道,Groovy语言对集合做了很多的简化,如each、collect等等。但是,Groovy语言觉得这些还不够,它要继续给我们提供更多的简化操作。今天我们要谈到的“ *.”,就是其中的一个。
*.”操作符到底有什么用?我们还是从一个简单的例子谈起。
??? ?
??? ? def list = [ 'abc' , 'yyyy' , '1234467' ]
??? ?
??? ? def sizes = list*. size ()
??? ?
??? ?sizes. each {
?????? ? println it
??? ?}
?
打印的结果为:
3
4
7
?
通过上面的例子,我们可以知道,*.”操作符的操作对象是一个List对象,如上面的list对象;然后它的结果也是一个List对象;最后还有一个size()方法,是在取元素的长度。
通过结果,我们知道,我们的“ *.”操作符首先对list对象的每一个元素进行size()运算,然后把运算得到的每一个结果作为元素组成一个新的list对象sizes。
可以知道,上面的“ *.”操作符的运算相当于下面的代码:
??? ?
??? ? def list = [ 'abc' , '1234467' ]
??? ?
??? ? def sizes = list. collect {
?????? ?it. size ()
??? ?}
??? ?
??? ?sizes. each {
?????? ? println it
??? ?}
??? ?
同样的结果,但上面的代码比起“ *.”操作符就麻烦多了。知道了“ *.”操作符的作用,我们就可以对它进行更多的应用。
假设我们有如下的一个GroovyBean:
class Empl
{
??? String name
??? int age
}
?
我们现在有一个Empl对象为元素的List对象:
def list = [ new Empl(name: 'Tom' ,age: 12 ), new Empl(name: 'Alice' ,age: 15 ), new Empl(name: 'Rose' ,age: 20 )]
???
现在,我们要取得每一个元素的 age ,组成一个新的 List 对象:
?
?????? def sizes = list*.age
???
?
下面我们来测试:
??????
?????? sizes. each {
?????????? println it
?????? }
???
结果为:
12
15
20

(编辑:李大同)

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

    推荐文章
      热点阅读