基於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) – 2010-12-08 17:25:17