Nik*_* B. 16
让我们来看看:
class Test
def initialize; end
end
p Test.new.private_methods.sort.include?(:initialize)
Run Code Online (Sandbox Code Playgroud)
这打印true
,initialize
私有方法也是如此.这是有道理的,只有new
在创建对象时才通过类方法调用它.如果我们想要,我们可以这样做:
class Test
def initialize
@counter = 0
end
def reset!
initialize
end
end
Run Code Online (Sandbox Code Playgroud)
如果它不仅仅是简单的变量初始化,那么滥用这样的构造函数可能会导致问题.