アマグラミング

プログラミング初心者が勉強したことを復習とメモがてら書いているだけです。

(87)メソッド定義内のselfがよくわからんちん

インスタンスメソッドで、メソッドのレシーバーを参照するには

selfという特別な変数を使います。

 

 まあやってみます。

class HelloWorld
attr_accessor :name
def initialize(name)
@name = name
end
def ababa
puts "こんにち#{self.name}"
end
end
cat = HelloWorld.new("にゃ")
cat.ababa

 

これの実行結果は

f:id:tiroru17:20170714023450p:plain

こうなります。

 

この場合はselfはababaメソッドを呼んだ時のレシーバーを参照している

つまりcatの部分

この

puts "こんにち#{self.name}"

puts "こんにち#{@name}"

これでもいいんだけどね・・・

ちなみにselfの部分は省略してもいい、

あいまいにならない場合は、だって、よくわからーん。

 

 

このselfについていったいなんなのかがよくわからなくて、

腑に落ちる説明がなかったので、更新が滞っていたりしました。

と、言ってもほとんどアクセスはないのでかまわないでしょう。