J'étais accro quand je voulais faire référence à la valeur définie dans initialize dans la méthode de classe
class Hoge
attr_accessor :aa
def initialize
@aa = 'aa'
end
def self.bb
@aa
end
end
p Hoge.bb
# => nil
Je n'ai pas défini la valeur parce que je n'ai pas fait Hoge.new, Donc rien n'est retourné
class Hoge
attr_accessor :aa
def initialize
@aa = 'aa'
end
def bb
@aa
end
end
hoge = Hoge.new
p hoge.bb
Vous pouvez faire référence à la valeur en utilisant la méthode d'instance (c'est naturel) Lorsque vous souhaitez utiliser une valeur dans une méthode de classe Définissons la valeur directement sur la variable d'instance sans utiliser initialize.
class Hoge
@aa = 'aa'
def self.bb
@aa
end
end
p Hoge.bb
#=> "aa"
S'il faut l'utiliser dans une méthode de classe ou une méthode d'instance J'étais accro à apprendre que je devais être conscient du contenu d'initialiser selon le but.
Dédié chaque jour
Recommended Posts