我正在尝试执行以下操作:
class SUM
def make_sum (number)
return number+number
end
def make_sum (number_a, number_b)
return number_a+number_b
end
end
operation = SUM.new
operation.make_sum(5) # returns 10
operation.make_sum(2, 3) # returns 5
一个输入的 make_sum 方法由具有两个输入的方法重新定义。
最佳答案
如果添加是您想要的,您可以更简单地执行以下操作:
def add(*numbers)
numbers.inject(&:+)
end
add(1) # => 1
add(1, 3, 5) # => 9
如果您正在寻找更通用的解决方案来解决如何提供依赖于参数数量的行为,那么您可以在签名中使用 *args
,然后基于 args.size
:
def foo(*args)
case args.size
when 1
# do something
when 2
# do something else
when (3..5)
# do another thing
end
end
关于ruby - 是否可以通过重载来实现多态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37662905/