Ruby class initialize (constructor) is private method or public method?
-
14-04-2021 - |
Domanda
Is initialize method (constructor) private or public in ruby?
Soluzione
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.
Altri suggerimenti
The initialize
method in a class automatically becomes Private.
You can check it using:
puts ClassName.private_methods.sort
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow