我想定义一个实例方法 Date#next
,用于返回下一天的日期。因此,我创建了一个名为DateExtension
的模块,代码如下:
module DateExtension
def next(symb=:day)
dt = DateTime.now
{:day => Date.new(dt.year, dt.month, dt.day + 1),
:week => Date.new(dt.year, dt.month, dt.day + 7),
:month => Date.new(dt.year, dt.month + 1, dt.day),
:year => Date.new(dt.year + 1, dt.month, dt.day)}[symb]
end
end
使用它:
class Date
include DateExtension
end
调用方法d.next(:week)
会导致Ruby抛出错误ArgumentError: wrong number of arguments (1 for 0)
。
我如何使用在DateExtension
模块中声明的方法覆盖Date
类中的默认next
方法?