Учитывая две функции
def bar()
return 1,2
end
def foo(a,b)
puts %{#{a},#{b}}
end
Я хотел бы иметь возможность вызывать foo
как с явными параметрами (например, foo(3,4)
), так и с параметрами, возвращаемыми bar
(например, foo(bar)
).
К сожалению, второй вызов вызывает ArgumentError: «неверное число аргументов (задано 1, ожидается 2)».
Объявление foo()
для принятия кортежа (def foo(c); a,b = c; puts %{#{a},#{b}}; end
) тоже не работает, потому что тогда первый параметр вызова вызывает ArgumentError.
Я думал об определении foo
для получения Ha sh:
def foo(c)
a,b = c['a'],c['b']
puts %{#{a},#{b}}
end
, но это делает Использование с явными параметрами довольно неудобно. То же самое с массивом.
Каков Ruby -экологический способ решить эту проблему?