Я работаю над очень простым упражнением: методом, который может размножаться между двумя и неопределенным числом поплавков. Моя первая идея для этого заключалась в использовании оператора splat:Как передать (2-∞) аргументы методу ruby?
def multiply a, b, *rest
a * b * rest
end
Это не удалось. Затем я попытался это:
def multiply *numbers
total = 1
numbers.each do |x|
total = total * x
end
total
end
Выше почти успешно, проблема заключается в том, что он будет принимать один аргумент, и я хочу, чтобы это потребуется, по меньшей мере, два. Как я могу это достичь?
Стоит отметить, что вы также можете передать строку как второй аргумент 'raise', который может служить полезным сообщением. –
супер, спасибо. Я не знал о «инъекции». Можете ли вы объяснить обозначение '(&: *)', которое следует методу? – adc17
@adc См. Https://stackoverflow.com/questions/1961030/ruby-ampersand-colon-shortcut – meagar