We read so many documents about ruby but do you think about some facts that we really don’t know. See below.
1. Instance variables are accessible across the class for that instance
Example:
class Test2 def one @one = 1 @two end def two @two = 2 @one end end
Here
t = Test.new => t.one is what ? t.two is what ?
Can you guess?
t.one is nil why? t.one will return @two, but it is not initialized yet. We have to call t.two for intitializing it (the variable gets a value).
t.two is what?
Ans: 1
Why? because we already initialized @one by calling t.one above. If not it will also return nil.
So what is the purpose of instance variable if we are not getting its value when initializing the Class (say t = Test.new)
Here is the importance of ‘initialize’ method. Lets change the method named ‘two’ to ‘initialize’
class Test3 def one @one = 1 @two end def initialize @two = 2 @one end end
then you try:
t = Test.new => ### See here already declared the variable @two t.one => 2
Nice. So we can access that instance variable anywhere in the class. How is that? 🙂