这是在一个共享库中,我必须使它向后兼容。为什么ruby方法在末尾不允许超过一个参数
原始方法
def rrp_exc_sales_tax=(num)
price_set(1, num, currency_code)
end
需要加强,并添加CURRENCY_CODE
def rrp_exc_sales_tax=(num, currency_code=nil)
print "num=#{num}"
print "currency_code=#{currency_code}"
price_set(1, num, currency_code)
end
some_class.rrp_exc_sales_tax=2, "USD"
num=[2, "USD"]
currency_code=
没有价值被分配到CURRENCY_CODE
为了谁是downvoting,并要求关闭的乡亲,这引起了人们对Ruby语言和功能如何一个很好的问题被执行。请在将人员排除在网站之前进行考虑。 – archie
setter方法(例如以'='结尾的方法)应该保留用于通过赋值'='来设置实例变量。在你的情况下,将它转换为真正的方法调用会更好,因为赋值不会在你的方法内部发生。原始设计的核心问题是使用'=',您可以发布价格设置方法,以便我们看到如何分配。 – engineersmnky