是否可以使用带有Groovy的扩展运算符的闭包。
e.g。
def numbers = [4,8]
def numbersPlusTen = numbers*.{it -> it + 10}
或者,差价运算符只能处理方法或属性吗?
答案 0 :(得分:4)
或者我会做
def numbers = [4,8]
def numbersPlusTen = numbers*.plus(10)
如果我想添加10.:)
答案 1 :(得分:3)
不,点差运算符仅适用于方法。但是在您的示例中,您可以使用一些元编程来实现此功能。
def numbers = [4,8]
java.lang.Integer.metaClass.something = {delegate + 10}
def numbersPlusTen = numbers*.something()
答案 2 :(得分:0)
你也可以使用List的each()方法进行更复杂的操作,而不仅仅是加号():
def numbersPlusTen = []
numbers.each({numbersPlusTen << it+10})
所以隐式arg的例子是:
def args = [4,8]
function f(int x, int y) {x+y}
f(*args)
传播运营商也可以在前面使用:
msvcr120.dll