# Is self.var in a class the same as @@var?

**URL:** <https://www.ruby-forum.com/t/is-self-var-in-a-class-the-same-as-var/106876>\
**Category:** Ruby\
**Created:** [June 14, 2007, 10:23pm UTC](https://www.ruby-forum.com/t/is-self-var-in-a-class-the-same-as-var/106876 "2007-06-14T22:23:12Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![emmanueloga](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/ecae2f/32.png) [@emmanueloga](https://www.ruby-forum.com/u/emmanueloga)\
**Post date:** [June 14, 2007, 10:23pm UTC](https://www.ruby-forum.com/t/is-self-var-in-a-class-the-same-as-var/106876/1 "2007-06-14T22:23:12Z")

</div>

Is this the same?

class Test  
@@class\_var= “”  
end

class Test  
self.clas\_var= “”  
end

Thanks

---

<div class="post-metadata">

**Author:** ![emmanueloga](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/ecae2f/32.png) [@emmanueloga](https://www.ruby-forum.com/u/emmanueloga)\
**Post date:** [June 14, 2007, 10:35pm UTC](https://www.ruby-forum.com/t/is-self-var-in-a-class-the-same-as-var/106876/2 "2007-06-14T22:35:56Z")

</div>

On 6/14/07, Emmanuel O. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Thanks
> 
> –  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

No it is not, as a matter of fact the second idiom is not correct  
(even with the typo corrected)…  
irb(main):001:0\> class Test  
irb(main):002:1\> @@class\_var= “”  
irb(main):003:1\> end  
=\> “”  
irb(main):004:0\>  
irb(main):005:0\* class Test  
irb(main):006:1\> self.clas\_var= “”  
irb(main):007:1\> end  
NoMethodError: undefined method `clas\_var=’ for Test:Class  
from (irb):6  
from :0  
irb(main):008:0\>

…  
I believe that you are looking for accessors to class instance  
variables, there are no accessors for class variables

class Test  
@a = 42 ### Class instance variable  
@@b = 42 ### Class variable  
class \<\< self  
attr\_accessor :a, :b  
def show  
puts “civar b #{self.b}”  
puts “cvar b#{@@b}”  
end  
end  
end

puts Test.a  
puts Test.b  
Test.b=1  
puts Test.b  
Test.show

* * *

This is a frequent source of confusion at first, so pls keep asking if  
I was not very clear 🙂

HTH  
Robert
