目前正在阅读Ruby风格指南,我遇到了一个例子:
def no_op; end
空身方法的目的是什么?
答案 0 :(得分:3)
您可能会创建一个空方法的原因有很多:
undef foo
。也可能有其他原因,但那些是想到的。您的里程可能会有所不同。
答案 1 :(得分:1)
可能有几个原因。
一种情况是,当一个类需要实现一个特定的接口时(实际上,假设在Ruby中没有接口),但在那个特定的类中,该方法没有意义。在这种情况下,该方法保持一致。
class Foo
def say
"foo"
end
end
class Bar
def say
"bar"
end
end
class Null
def say
end
end
在其他情况下,它会被留作临时占位符或提醒。
在某些情况下,该方法有意留空,作为使用该库的开发人员的钩子。它在运行时调用的方法,使用该库的开发人员可以覆盖blank方法以执行一些自定义回调。过去,一些Rails库使用了这种方法。