我对Groovy有点新意,所以我确信这是非常明显的事情之一......但是很难通过Google搜索。
在其他语言中,星号往往代表指针。但是,在这段Groovy代码中:
byte[] combineArrays(foo, bar, int start) {
[*foo[0..<start], *bar, *foo[start..<foo.size()]]
}
我只能想象事实并非如此。指的是,指针? Groovy的?
我假设此代码打算传递foo和bar的成员而不是多维数组。那么星号究竟意味着什么?
非常感谢你的帮助。
答案 0 :(得分:10)
当像这样使用时,*运算符将List或Array传播到参数列表中。这根本没有帮助,是吗?一个例子呢?假设我们有这个功能:
def add(Number a, Number b) {
return a + b
}
此列表
def args = [1, 2]
我们不应该这样做:
add(args)
因为函数需要两个数字参数。但我们可以这样做:
add(*args)
因为*运算符将2个元素的List转换为2个参数。您可以将此运算符与Lists和Arrays一起使用。