From: "Gennady F. Bystritsky" Date: 2002-11-15T03:44:18+09:00 Subject: Re: Another Newbie question regarding instance variables? ----- Original Message ----- From: "Joel VanderWerf" To: "ruby-talk ML" Sent: Thursday, November 14, 2002 9:10 AM Subject: Re: Another Newbie question regarding instance variables? > dblack@candle.superlink.net wrote: > > Hi -- > > > > On Fri, 15 Nov 2002, Gennady F. Bystritsky wrote: > > > > > >>I thought that I knew Ruby pretty well until I came accross this thread > >>about "class instance variables". It always haunted me why it does not work > >>when I do > >> > >> @var = value > >> > >>outside any method definition, meaning initialization of an instance > >>variable. Now I see why. Hence the question: is there any practical use for > >>"class instance variables"? If so, would anybody post an example? > > > > > > > > One potentially good thing, though I can't claim to have any dazzling > > examples, is that a class's instance variables can be used as true > > class-scoped variables, as opposed to class variables which are sort > > of tree-scoped. > > A slightly more elaborate example, showing how it can be useful to have > per-class rather than per-class-tree variables: > > > class A > class << self > def new(*args) > @count ||= 0 > @count += 1 > super > end > > attr_reader :count > end > end > > class B < A > end > > 10.times { A.new } > 20.times { B.new } > > p A.count # ==> 10 > p B.count # ==> 20 > > Note that count is the number of *direct* instances of the class (A or > B) which have been created, not the number that currently exist. This one is good, now I have a clear picture of the concept. > > > >