selfがRubyのデフォルトの受信者で、インスタンスメソッド定義で 'puts'を呼び出す場合、その呼び出しの受信者のオブジェクトのインスタンスですか?Ruby selfとputs
など。
class MyClass
attr_accessor :first_name, :last_name, :size
# initialize, etc (name = String, size = int)
def full_name
fn = first_name + " " + last_name
# so here, it is implicitly self.first_name, self.last_name
puts fn
# what happens here? puts is in the class IO, but myClass
# is not in its hierarchy (or is it?)
fn
end
end
非常に良い点。ここでのプロトコルは何ですか、私は自分の答えを削除し、あなたのものを残すべきですか(もっと正確です)? –
実際、私は間違っていました。 'self.puts'は現在のクラスで' puts'メソッドを呼び出すのとは異なります。基本的にあなたと同じことを言っていた私の答えの最初の改訂は正しかったし、あなたも同じです。 –