문제

Is initialize method (constructor) private or public in ruby?

도움이 되었습니까?

해결책

Let's see:

class Test
  def initialize; end
end

p Test.new.private_methods.sort.include?(:initialize)

This prints true, so initialize is a private method. This makes sense, it is only called by the new class method if the object is created. If we want, we can do something like this:

class Test
  def initialize
    @counter = 0
  end

  def reset!
    initialize
  end
end

Misusing the constructor like this could however lead to problems if it does more than simple variable initialization.

다른 팁

The initialize method in a class automatically becomes Private.

You can check it using:

puts ClassName.private_methods.sort
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top