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