[RUBY] Eine kleine süchtig machende Geschichte mit def initialize

Bei der Initialisierung wird der Wert im Neuzustand festgelegt

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

Eine kleine süchtig machende Geschichte mit def initialize
Eine Geschichte, die bei NotSerializableException steckt
Eine kleine Geschichte mit regulären Ausdrücken Teil 1
Eine kleine Geschichte über reguläre Ausdrücke Teil 2
Eine kleine unruhige Geschichte mit Groovy
Eine kleine süchtig machende Geschichte nach dem Update des JDBC-Treibers für PostgreSQL
Tipps zur Geschwindigkeitsverbesserung mit ein wenig Technik
Ich habe versucht, ein wenig mit BottomNavigationView zu spielen ①
Eine Geschichte voller Javas Standardeingabescanner
Die Geschichte, einen Reverse-Proxy mit ProxyServlet zu erstellen
Eine Geschichte über den Versuch, mit Mockito auszukommen
Eine Geschichte über die Reduzierung des Speicherverbrauchs auf 1/100 mit find_in_batches
Eine Geschichte über die Entwicklung von ROS namens Rosjava mit Java
Die Geschichte der Erstellung einer Task-Management-Anwendung mit Swing, Java
Eine Geschichte voller Grundlagen von Spring Boot (gelöst)
Eine verwirrte Geschichte über einen ternären Operator mit mehreren bedingten Ausdrücken