Rubyのselfについて
ruby 2.2.1p85
mac Mavericks
Ruby言語の質問になります。
以下のソースコードを実行した結果、分からないことが2点あります。
① グローバル変数$bの出力結果が何故「nill」になるのか。
② hoge2メソッドを呼び出した際に、何故「A.new == self」がtrueにならないのか。
class A
$a = self
def hoge
$b = self
end
def hoge2
puts self
puts A == self
puts A.new == self
end
end
puts A == $a, A.new == $b
p $a
p $b
A.new.hoge2
実行結果は以下になります。
true
false
A
nil
#<A:0x007fd8ab82a088>
false
false
以上です。
よろしくお願いします。