ruby конвертирует массив в аргументы функции

Скажи, у меня есть массив. Я хочу передать массив в функцию. Функция, однако, ожидает два аргумента. Есть ли способ на лету конвертировать массив в 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)) Благодарю.

Ответы на вопрос(2)

Использовать этот

a.slice(*b)

Это's называется оператором сплат

Решение Вопроса

Вы можете включитьArray в список аргументов с* (или же "знак») оператор:

a = [0, 1, 2, 3, 4] # => [0, 1, 2, 3, 4]
b = [2, 3] # => [2, 3]
a.slice(*b) # => [2, 3, 4]
Ссылка:Преобразование массива в аргументы
 Arup Rakshit19 февр. 2013 г., 16:33
Да! Вототлично. :)

Ваш ответ на вопрос