Я заметил, изучая Ruby, что оба этих метода использования каждого метода работают и производят один и тот же вывод, и мне было интересно, как это делает Ruby (и как я могу это сделать для моих собственных функций):Ruby: Перегрузка Функция вывода
my_array = [["hello","goodbye"],["picture","perfect"]]
my_array.each do |array|
puts array[0] + " " + array[1]
end
my_array.each do |first, second|
puts first + " " + second
end
Я понимаю, что при написании определения метода, который принимает блок кода, метод доходности используются для передачи аргументов в блок кода и вызвать блок. Но как вы можете использовать метод yield так, чтобы он передавал разные аргументы в зависимости от предоставленного кодового блока? В примере примера оказывается, что метод yield передает отдельные элементы массива, когда в блоке используются два параметра (т. Е. Первый, второй), и он передает сами массивы, когда один параметр используется внутри блока (т. Е. Массив).
@ RoneyMichael Исправьте меня, если я ошибаюсь, но я не думаю, что это решение. Оператор splat предназначен для использования с параметрами, а не с аргументами. И мой вопрос касается того, как я структурирую свои операторы yield и какие аргументы передаю им. – voltair
О, верно! Виноват. –