Ich war süchtig, als ich mich auf den Wert beziehen wollte, der in initialize in der Klassenmethode festgelegt wurde
class Hoge
attr_accessor :aa
def initialize
@aa = 'aa'
end
def self.bb
@aa
end
end
p Hoge.bb
# => nil
Ich habe den Wert nicht festgelegt, weil ich Hoge.new nicht ausgeführt habe. Also wird nichts zurückgegeben
class Hoge
attr_accessor :aa
def initialize
@aa = 'aa'
end
def bb
@aa
end
end
hoge = Hoge.new
p hoge.bb
Sie können mit der Instanzmethode auf den Wert verweisen (dies ist natürlich). Wenn Sie einen Wert in einer Klassenmethode verwenden möchten Setzen wir den Wert direkt auf die Instanzvariable, ohne initialize zu verwenden.
class Hoge
@aa = 'aa'
def self.bb
@aa
end
end
p Hoge.bb
#=> "aa"
Gibt an, ob es in einer Klassenmethode oder einer Instanzmethode verwendet werden soll Ich war süchtig nach dem Lernen, dass ich den Inhalt der Initialisierung entsprechend dem Zweck kennen musste.
Jeden Tag gewidmet
Recommended Posts