是否有最佳实践来在Ruby中实现方法?
即。在子类中,如果我想覆盖一个没有任何东西的方法,那么还有另外一种语法:
class A
def XX
[..do something..]
end
end
class B < A
def XX
# Do Nothing
end
end
我想知道是否有关键字...
class B < A
void_method :XX
end
...因为代码维护更清晰。
答案 0 :(得分:4)
没有,它实际上会比
更多的击键def XX; end
但是你可以轻松添加这样的方法
class A
def self.void_method name
define_method(name) {}
end
end
或者显然,如果您打算在更多地方使用它,可以将其添加到对象中。
答案 1 :(得分:1)
从你的问题中不清楚你想要什么。如果您希望它不返回任何方法错误,请执行以下操作:
class B < A
undef_method :XX
end
如果您希望它返回nil
,请执行以下操作:
class B < A
def XX *args, ≺ end
end
如果您希望它返回接收器,请执行以下操作:
class B < A
def XX *args, ≺ self end
end