Скажем, у меня есть массив. Я хочу передать массив функции. Однако функция ожидает два аргумента. Есть ли способ на лету преобразовать массив в 2 аргумента? Например:
a = [0,1,2,3,4]
b = [2,3]
a.slice(b)
Выдает ошибку в Ruby. Мне нужно ввести данные. a.slice(b[0],b[1])
Я ищу что-то более элегантное, например " a.slice(foo.bar(b))
Спасибо".
Ответы:
Вы можете превратить
Array
в список аргументов с помощью*
оператора (или "splat"):a = [0, 1, 2, 3, 4] # => [0, 1, 2, 3, 4] b = [2, 3] # => [2, 3] a.slice(*b) # => [2, 3, 4]
Справка:
источник
Использовать это
Это называется оператором splat
источник