|
setup diary |
class Test @@v=0 def initialize() @@v+=1 end def v @@v end end t1=Test::new p t1.v t2=Test::new p t1.vとすると、生成したオフジェクトの数が表示される。一方、クラス定数も複数のオフジェクトで共有できるが、メソッド中での代入はできない。しかし、
class Test V=[] def initialize() V<<1 end end t1=Test::new p Test::V t2=Test::new p Test::Vなどとすると、変更は可能である。このあたりがどのようになっているのかよく理解できていない。当然のことだが、変更が必要な場合には、クラス変数を用いると良いのだろう。