[#1026] Is this a bug? — Dave Thomas <Dave@...>

18 messages 2000/01/03

[#1084] Infinite loop — Dave Thomas <Dave@...>

17 messages 2000/01/11

[#1104] The value of while... — Dave Thomas <Dave@...>

24 messages 2000/01/11

[ruby-talk:01127] Re: Class variables...

From: matz@... (Yukihiro Matsumoto)
Date: 2000-01-12 09:33:03 UTC
List: ruby-talk #1127
Hi,

In message "[ruby-talk:01125] Class variables..."
    on 00/01/12, David Suarez de Lis <excalibor@demasiado.com> writes:

|Say I have a class person and a variable @population.
|
|class Person
|    @population = 0
|    def new(the_name = nil)
|        @name = the_name
|        @Person::population += 1
|    end
|end

Ruby does not have the class variables (yet).

Typical idiom to share value among instances is:

 class Person
    Population = [0]
    def new(the_name = nil)
        @name = the_name
        Population[0] += 1
    end
 end

|Also, I assume END {} allows us to put conditions for GC?
|Like END { @Person::population -= 1 }

No, END is like at_exit(3) for C.
For something to be processed at GC time, use finalizers.

  require 'final'

  ObjectSpace.define_finalizer(obj, proc)

will call proc on GC.  Notice the proc should not point obj directly,
or indirectly.  Ask \Cle. for more detail.  :-)

							matz.

In This Thread