Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1587 connectés 

  FORUM HardWare.fr
  Programmation
  Ruby/Rails

  [résolu]variables de classe; raccourcis syntaxiques

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu]variables de classe; raccourcis syntaxiques

n°1899784
flashball
Posté le 28-06-2009 à 04:20:50  profilanswer
 

Salut tout le monde je cherche comment initialiser une variable de classe en utilisant les raccourcis syntaxiques
Le problème est que si j'utilise attr_accesor pour une variable de classe, je n'arrive pas à initialiser cette variable à l'intérieur de la classe.
 
sans le raccourci ca marche: [j'ai pas utilisé la balise cpp car avec cette dernière en faisant un copier coller sans sélectionner les numéros de lignes on les recopie quand même]
 
 
 
###DEBUT_VERSION_OK#####################
##########################################
class MaClasse
 
    def self.chaineDeClasse=(cc)
        @@chaineDeClasse = cc
    end
     
    def self.chaineDeClasse
        @@chaineDeClasse
    end
     
    @@chaineDeClasse = "zzzz"
end
 
obj = MaClasse.new()
puts MaClasse.chaineDeClasse # ca marche, affiche zzzzz
 
MaClasse.chaineDeClasse = "aaaa"
puts MaClasse.chaineDeClasse #ici ca marche, affiche aaaa
###FIN_VERSION_OK#######################################
#########################################################
 
 
 
 
 
mais la même code en utilisant  le raccourci attr_accesor (pour les variables de classe) à la place des méthodes self.chaineDeClasse cela ne marche pas
 
 
 
 
 
###DEBUT_VERSION_BUGGUEE###########################
#######################################################
class MaClasse
    class << self  
        attr_accessor :chaineDeClasse        
    end  
 
    @@chaineDeClasse = "zzzz" #ne renvoie pas d'erreur mais n'a pas l'air d'initialiser la variable de classe
end
 
obj = MaClasse.new()
puts MaClasse.chaineDeClasse # ca bug ici : ca m'affiche une ligne vide
 
MaClasse.chaineDeClasse = "aaaa"
puts MaClasse.chaineDeClasse #la ca marche, affiche "aaaa"
###FIN_VERSION_BUGGUEE##############################
#######################################################


Message édité par flashball le 28-06-2009 à 20:11:42
mood
Publicité
Posté le 28-06-2009 à 04:20:50  profilanswer
 

n°1899796
masklinn
í dag viðrar vel til loftárása
Posté le 28-06-2009 à 10:14:34  profilanswer
 

http://blade.nagaokaut.ac.jp/cgi-b [...] alk/272994
http://stackoverflow.com/questions [...] -variables

 

Franchement, google quoi...

Message cité 1 fois
Message édité par masklinn le 28-06-2009 à 10:14:53

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1899866
flashball
Posté le 28-06-2009 à 19:23:03  profilanswer
 


Pour te parodier :
"Franchement lunettes quoi"  
 
C'est ce que j'utilise, cf les 10 premières lignes de la VERSION_BUGGUEE  
Tes liens n'expliquent pas comment  initialiser proprement cette variable car si je fais avec la VERSION_BUGGUEE comme indiqué dans mon premier post :
 
puts MaClasse.chaineDeClasse  
ca m'affiche une ligne vide au lieu de "zzzz" alors que j'ai @@chaineDeClasse = "zzzz"  de déclaré à l'intérieur de la classe

Message cité 1 fois
Message édité par flashball le 28-06-2009 à 19:31:12
n°1899868
masklinn
í dag viðrar vel til loftárása
Posté le 28-06-2009 à 19:31:03  profilanswer
 

flashball a écrit :


Pour te parodier :
"Franchement lunettes quoi"


Mes lunettes fonctionnent bien, puisque j'arrive à lire le contenu de ces liens et toi pas.

 

Un indice pour vous dans votre salon: attr_accessor, ça crée un attribut d'instance, donc @foo. Toujours [:dawak]


Message édité par masklinn le 28-06-2009 à 19:32:45

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1899869
flashball
Posté le 28-06-2009 à 19:35:20  profilanswer
 

je ne comprends pas puisque il me semble que je fais la même chose :
class MaClasse
    class << self
        attr_accessor :chaineDeClasse        
    end
 
j'utilise pas rails hein, que ruby1.9 et 1.8


Message édité par flashball le 28-06-2009 à 19:35:46
n°1899872
flashball
Posté le 28-06-2009 à 19:42:31  profilanswer
 

merci donc apparemment il ne faut garder qu'un arobase même si c'est une variable de classe. Pourquoi ??
Et maintenant comme je fais pour avoir une variable d'instance qui se nomme pareil ?

n°1899874
flashball
Posté le 28-06-2009 à 19:45:43  profilanswer
 

merci Masklin, ca ca marche :  
 
class MaClasse
    class << self
        attr_accessor :chaineDeClasse        
    end
 
 
   @chaineDeClasse = "zzzz" #
end
 
puts MaClasse.chaineDeClasse

n°1899877
masklinn
í dag viðrar vel til loftárása
Posté le 28-06-2009 à 19:51:30  profilanswer
 

flashball a écrit :

merci donc apparemment il ne faut garder qu'un arobase même si c'est une variable de classe. Pourquoi ??


Parce qu'il y a 3 types de variables en Ruby: variable de classe, variable d'instance et variable locale. Mais une classe est aussi une instance de quelque chose (de la métaclasse Class pour être précis), une classe peut donc avoir des variables d'instance qui sont différentes des variables de classe d'une de ses instances (et les variables de classe d'une classe portent sur Class).


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1899880
flashball
Posté le 28-06-2009 à 20:15:04  profilanswer
 

En utilisant class << self ; attr_accessor etc.
pour avoir accès aux variables de classe à l'intérieur des méthodes d'instances ( initialize par exemple) il faut utiliser self.class.ma_variable_de_classe


Message édité par flashball le 28-06-2009 à 20:43:40

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ruby/Rails

  [résolu]variables de classe; raccourcis syntaxiques

 

Sujets relatifs
[Résolu]Probleme avec des pointeur de structure[resolu]Ajax.updater et IE
[RESOLU] Problème exécution .jar[Resolu] [VBA] Macro Excel - Zone de texte
[Résolu] Chevauchement de mémoireVBA_Excel_ouverture automatique - Résolu
[VBS][Résolu] Supprimer une ligne dans Excel[Résolu] [DOS] Set dans un for
[RESOLU ]base de données mysql[Resolu]Erreur de compilation
Plus de sujets relatifs à : [résolu]variables de classe; raccourcis syntaxiques


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR