是否有在 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
...因为它更便于代码维护。
是否有在 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
...因为它更便于代码维护。
没有,而且实际上击键次数比
def XX; end
但是您可以轻松添加这样的方法
class A
def self.void_method name
define_method(name) {}
end
end
或者显然,如果您要在更多地方使用它,您可以将它添加到对象中。
从您的问题中不清楚您想要什么。如果您希望它不返回任何方法错误,请执行以下操作:
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