基于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