Groovy Tip 15 “*”操作符

本文介绍Groovy语言中*操作符的多种用途,包括简化多参数方法调用及集合类操作等,展示了Groovy语言的高效性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Groovy Tip 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对象,它的元素由120的数字组成。在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']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值