this blogに基づいて、私が同意するこのようなものが動作します。自己が何かに割り当てられているときにエラーが発生しない理由
class Object
def tap
yield self
self
end
end
は、ここで私はその後、ルビーが爆破すべき自己の値を変更しようとしておりますので、上記の場合には、私の実験
class Lab
end
puts Lab.new.tap {|e| e = 'Boom' }
です。しかし、それは爆破しません。
次に、自己爆発の試みが起こった場合を示します。だから私の質問は、上記の場合にルビーが爆発しない理由です。
class Lab
def lab
puts self
self = 'Boom' #=> exception Can't change the value of self
puts self
end
end
[参照または値によってRubyが渡されますか?](http://stackoverflow.com/questions/1872110/is-ruby-pass-by-reference-or-by-value) –