Ruby class initialize (constructor) is private method or public method?
-
14-04-2021 - |
Вопрос
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
Не связан с StackOverflow