# Question on instance variable access

**URL:** <https://www.ruby-forum.com/t/question-on-instance-variable-access/99723>\
**Category:** Ruby\
**Created:** [July 25, 2006, 3:56am UTC](https://www.ruby-forum.com/t/question-on-instance-variable-access/99723 "2006-07-25T03:56:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [July 25, 2006, 3:56am UTC](https://www.ruby-forum.com/t/question-on-instance-variable-access/99723/1 "2006-07-25T03:56:19Z")

</div>

I came accross a problem which made me wonder. Sort of about dotting  
into a variable.  
I could find the answer in my ruby book. How would I do the access at  
the end here.  
I know I could probably use accessors, but is that the only way to do  
it ?

class A

def initialize  
@num = 3  
end

end

class B

def initialize  
@friend = A.new  
end

myobj = B.new

# syntax here ? Is this allowed, is it done another way ?

x = myobj.@friend.@num

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [July 25, 2006, 3:59am UTC](https://www.ruby-forum.com/t/question-on-instance-variable-access/99723/2 "2006-07-25T03:59:28Z")

</div>

> I know I could probably use accessors, but is that the only way to do  
> it ?

Yes. In Ruby all instance variables are private.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [July 25, 2006, 5:07am UTC](https://www.ruby-forum.com/t/question-on-instance-variable-access/99723/3 "2006-07-25T05:07:37Z")

</div>

The code would look like:  
myobj.instance\_variable\_get(:@friend).instance\_variable\_get(:@num)
