Звездочки перед именами массивов в Groovy?

Я немного новичок в Groovy, поэтому я уверен, что это одна из тех чрезвычайно очевидных вещей...но это трудно найти через Google.

в других языках, звездочки, как правило, представляют указатели. Однако, в этом фрагменте кода Groovy:

byte[] combineArrays(foo, bar, int start) {
  [*foo[0..<start], *bar, *foo[start..<foo.size()]]
}

Я могу только предположить, что это не так. В смысле, указатели? В Groovy?

Я предполагаю, что этот код намерена передать члены foo и bar в отличие от многомерного матрица. Так что же означают звездочки?

большое спасибо за вашу помощь.

1 ответов


при таком использовании оператор * распространяет список или массив в список аргументов. Это совсем не помогло, не так ли? Как насчет примера вместо этого? Скажем, у нас есть эта функция:

def add(Number a, Number b) {
  return a + b
}

и этот список

def args = [1, 2]

мы не должны делать этого:

add(args)

потому что функция ожидает два числовых аргументов. Но мы можем сделать это:

add(*args)

потому что * оператор преобразует список из 2 элементов в 2 аргументов. Вы можете использовать это оператор со списками и массивами.