ksino's diary

覚えたことを忘れないように、小さなことでも書いていく。

クラス変数とクラスインスタンス変数の違い

クラス変数は継承される。
クラスインスタンス変数は継承されない。

# coding: utf-8
class Foo
	# クラス変数
	@@var1 = 123

	# クラスインスタンス変数
	@var2 = 456

	def self.var1
		@@var1
	end
	
	def self.var2
		@var2
	end
end

class Bar < Foo
end

p Foo.var1
p Bar.var1
p Foo.var2
p Bar.var2

実行結果は

123
123
456
nil

となる。