Я хотел бы создать методы, называемые «добавить» и «вычесть» с помощью параметра пейнтбольного, как показано ниже:Передача параметра пейнтбольного от одного метода к другому методу
def add(*numbers)
numbers.inject(0) { |sum, n| sum + n }
end
def subtract(*numbers)
numbers[0] - add(numbers[1..-1])
end
Но это не сработало. Что мне делать, чтобы передать параметр splat из одного в другой? (Специально для определенного диапазона ...)
Спасибо!
Для того, чтобы 'add' функции принимают только ARG:' [* номера] .inject (0) ... '. BTW, '[* var]' - хороший рубиновый трюк, который не заботится о том, является ли 'var' массивом или нет. В противном случае ваше решение будет зависеть от массива с двумя элеменями ('subtract (9,1)'.) – mudasobwa
@mudasobwa, Спасибо за комментарий. Но я не понимаю, что вы имеете в виду. 'substrct (9, 1)' возвращает '8', как ожидалось. – falsetru
О, извините, по моей вине, я неправильно прочитал splat в 'subtract'. – mudasobwa