数据加载中...
Welcome to javafans club
网站刚开 , 谢谢大家的到来..
当前位置| 主页>Java技术资讯>Java新闻>

Groovy Tip 15 “*”操作符

2008-07-15 作者: 来源: 阅读
基于Groovy语言是一个敏捷的开发语言的观点,它在很多方面给我们提供编码的方便和高效性。“*”操作符便是其中的一个例子,它被淹没在Groovy语言的很多高效特性中,不为人轻易所知,但这却恰恰说明Groovy语言编程的敏捷性。下面,我们就来说一说“*”操作符。
先从一个简单的例子说起。
假设我们有如下的一个方法:
defstaticint sum(int i,int j,int k)
{
return i+j+k
}


现在,我们要调用这个方法。常规的调用如下:

sum(1,2,3)

通过“*”操作符,我们可以这样调用:
def list = [1,2,3]

println sum(*list)

我们再把例子复杂一点:

defstaticint cal(int i,int j,int k,list)
{
return i+j+k+list.size()
}

要调用上面的方法,我们可以:
def list = [1,2,3]

println cal(*list,[1,2,7])


由于Groovy的动态性,我们甚至可以:
def list = [1,2,3,[1,2,3]]

println cal(*list)

总之,有了“*”操作符,我们的多参数方法调用在写代码方面可以不用那么难受,可以先把所有的或部分的参数放在一个List对象里,然后把该对象传给方法。
除此之外,“*”操作符还有很多其他方面的用途,比如简化集合类的操作。下面也试图列举一些例子来说明。
我们现在有了一个List对象,如下:

def list1 = [1,2,3]

现在,我们需要一个新的List对象,它的元素部分由list1的元素组成。要实现这个目的,我们在Java语言的思路是这样的:
def list2 = []
list2.addAll(list1)
list2<<4

首先是要初始化一个新的List对象,然后使用addAll方法把list1的所有元素都赋给list2,然后再在list2中添加新的元素。
当然,在Java语言中,我们还有更简单的办法,这就是clone方法,如下:
def list2 = list1.clone()
list2<<4


首先把list1克隆一份赋给list2,然后给list2添加新的元素。
在Groovy语言中,我们使用“*”操作符,可以这样做:
def list2 = [*list1,4]


这真是太简单了。
再举出一个例子,你就更感叹于“*”操作符的简单了。
现在,我们要创建一个List对象,它的元素由1到20的数字组成。在Java语言中,我们是这样做的:
List list = new ArrayList();
for(int i=1; i<=20; i++)
{
list.add(i);
}

可以看到,十分的麻烦,需要使用for循环挨个赋值。
我们在Groovy语言中,只需要这样:

def list = [*(1..20)]

除了List对象,“*”操作符同样也可以使用于Map对象:

def map1 = ['name':'Tom',age:19]

def map2 = [*:map1,'addr':'Shenzhen']
上一篇:JSR 308:Java语言复杂度在恣意增长?

下一篇:精通 Grails: 使用 Ajax 实现多对多关系
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
Sitemap Links Contcat us
© 2008 Javafans.Net 苏ICP备06044966号