E’ possibile definire Protected una variabile di una classe in Ruby?(A
tal proposito qualcuno potrebbe spiegarmi la differenza tra variabile di
classe e d’istanza?)
Grazie mille
E’ possibile definire Protected una variabile di una classe in Ruby?(A
tal proposito qualcuno potrebbe spiegarmi la differenza tra variabile di
classe e d’istanza?)
Grazie mille
From: Alessandro M. [email protected]
To: [email protected]
Sent: Saturday, 14 March, 2009 19:04:34
Subject: [ruby-it] Variabile ProtectedE’ possibile definire Protected una variabile di una classe in Ruby?(A
tal proposito qualcuno potrebbe spiegarmi la differenza tra variabile di
classe e d’istanza?)
no, le variabili sono sempre private, però puoi definire come protected i
metodi per accedervi.
In generale comunque non è una pratica comune.
La differenza tra variabile d’istanza e di classe è che le prime sono
visibili solo, beh, nell’istanza
Le variabili di classe invece sono visibili sia nella classe che nelle
istanze:
class C
@@foo=10
def f() @@foo end
end
=> nil
C.new.f
=> 10
C.class_variables
=> [“@@foo”]
In pratica, una class variable ha senso quando vuoi delle informazioni
che siano condivise tra le varie istanze della classe, vagamente come
una static in Java.
Ma se possibile è sempre meglio usare una costante, che è ugualmente
visibile sia nella classe che nell’istanza.
class D
Foo=10
def f() Foo end
end
=> nil
D.new.f
=> 10
Attenzione che siccome le classi sono a loro volta istanze della
(meta-)classe Class, anche loro possono avere variabili d’istanza che
però a quel punto sono del tutto private e invisibili alle sucessive
istanze
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs