Я хочу использовать функцию перегрузки в Ruby, как и во многих других языках, но сам Ruby не поддерживает эту функцию.
Должен ли я реализовать его, используя способ определения метода с аргументом *args
и определения количества и типов аргументов внутри метода? Некоторым нравится:
class A
def foo(*args)
case (args.length)
when 1
do something
when 2
do something-else
....
end
end
end
Вы можете видеть, что это действительно уродливо, чем прямая перегрузка.
Я хочу знать, есть ли какие-либо ключевые слова или какие-то другие способы (, такие как метапрограммный -программный модуль ), которые могли бы позволить мне определить метод перегрузки более элегантным способом.