[Ruby] Was passiert, wenn das Selbst der Methode als Rückgabewert verwendet wird?

Sie können erneut eine Verbindung herstellen und dieselbe Methode verwenden.

Praktisches Beispiel

class Hoge
  def foo
     self
  end
end

Hoge.new.foo
#<Hoge:0x00007f92612b2e38>

Hoge.new.foo.foo.foo.foo
#<Hoge:0x00007f92618c82a0>

Auf diese Weise ist es möglich, dieselbe Methode erneut zu verwenden, da der Rückgabewert vom gleichen Typ ist.

Kommentar

a.method b

In dieser Situation ist der Rückgabewert der Empfänger a. Damit

c = a.method b

Dann wird der gleiche Typ wie a an c ausgegeben.

Anwendungsbeispiel

Enthält Instanzvariablen und zählt, wie oft eine Methode aufgerufen wird.

class Hoge
  def foo
     @a.nil? ? @a = 1 : @a = @a + 1 
     self
  end
end

Hoge.new.foo
=> #<Hoge:0x00007f92618c2080 @a=1>

Hoge.new.foo.foo.foo.foo
=> #<Hoge:0x00007f92618a0a98 @a=4>

Dann können Sie sehen, dass der Wert von @a um die Häufigkeit erhöht wird, mit der die foo-Methode aufgerufen wird.

Recommended Posts

[Ruby] Was passiert, wenn das Selbst der Methode als Rückgabewert verwendet wird?
Was ist die Zupfmethode?
[Ruby] Wofür wird `!!` verwendet?
Was ist die Initialisierungsmethode?
Was ist die Hauptmethode in Java?
Ruby-Methoden geben den zuletzt ausgewerteten Wert zurück
[Java] Es kann glücklich sein, wenn der Rückgabewert der Methode, die null zurückgibt, Optional <> ist
Was ist Selbst
Übergeben Sie ein Argument an die Methode und erhalten Sie das Ergebnis der Operation als Rückgabewert
Was ist Rubys Selbst?
Was ist der Unterschied zwischen einer Aktion und einer Instanzmethode?
9 Entspricht dem Rückgabewert
Was ist ein Ruby-Modul?
Was ist die BufferedReader-Klasse?
[Ruby] Was ist eine Instanz?
Wofür ist der Konstruktor?
[Ubuntu 20.04] Was tun, wenn der externe Monitor nicht erkannt wird?
Möchten Sie wissen, was Ruby n die Potenz von 2 ist? (Machturteil von 2)
Was tun, wenn Cloud 9 im Rails-Lernprogramm voll ist?
Hinweise, was zu tun ist, wenn das Eclipse Maven-Abhängigkeitsglas nicht korrekt ist