Sie können erneut eine Verbindung herstellen und dieselbe Methode verwenden.
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.
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.
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