In a ruby class, what does a variable "@@name" mean? Does it mean static
variable? Does its subclass have access to this field?
···
--
Posted via http://www.ruby-forum.com/.
In a ruby class, what does a variable "@@name" mean? Does it mean static
variable? Does its subclass have access to this field?
--
Posted via http://www.ruby-forum.com/.
Hi --
On Sun, 18 Jan 2009, Zhao Yi wrote:
In a ruby class, what does a variable "@@name" mean? Does it mean static
variable? Does its subclass have access to this field?
It's a class variable, which is actually a class-hierarchy variable
(shared between a class and its descendants), and also visible to all
the instances of all of those classes.
In other words, it's a kind of class-hierarchy-scoped global. Think of
it as $$name
David
--
David A. Black / Ruby Power and Light, LLC
Ruby/Rails consulting & training: http://www.rubypal.com
Coming in 2009: The Well-Grounded Rubyist (http://manning.com/black2\)
http://www.wishsight.com => Independent, social wishlist management!
"static variable" means different things in different contexts in C and
Java, but @@variables are roughly equivalent to those defined by
following Java code:
public class Foo{
private static int bar=0;
}
On Sun, 18 Jan 2009 07:33:29 -0500, Zhao Yi wrote:
In a ruby class, what does a variable "@@name" mean? Does it mean static
variable? Does its subclass have access to this field?
--
Chanoch (Ken) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu/~kbloom1/
David A. Black wrote:
It's a class variable, which is actually a class-hierarchy variable
(shared between a class and its descendants), and also visible to all
the instances of all of those classes.In other words, it's a kind of class-hierarchy-scoped global. Think of
it as $$nameDavid
Ok thanks. That's why I always got error when access to this variable
outside of the class-hierarchy.
--
Posted via http://www.ruby-forum.com/\.
Actually I would recommend against using this beast. There are some subtle issues with regard to definition order. Better use an instance variable of the class instance.
Kind regards
robert
On 18.01.2009 14:07, Zhao Yi wrote:
David A. Black wrote:
It's a class variable, which is actually a class-hierarchy variable
(shared between a class and its descendants), and also visible to all
the instances of all of those classes.In other words, it's a kind of class-hierarchy-scoped global. Think of
it as $$name
Ok thanks. That's why I always got error when access to this variable outside of the class-hierarchy.
--
remember.guy do |as, often| as.you_can - without end
'Beast' was a fun name for them.
You can use like it like this:
Regards!
On Sun, Jan 18, 2009 at 11:28 AM, Robert Klemme <shortcutter@googlemail.com> wrote:
Actually I would recommend against using this beast. There are some subtle
issues with regard to definition order. Better use an instance variable of
the class instance.