我在試着理解Ruby非常微妙的傳遞值的實現......或者真正的按值引用。這是有道理的參數傳遞給一個方法時,但是當我遇到下面,我有點困惑:我如何在Ruby中看到一個對象的引用
person = {name: "Michael"}
# => {:name => "Michael"}
person.object_id
# => 70366412279760
full_name = person[:name]
# => "Michael"
full_name.object_id
# => 70366412279780
full_name << " Jordan"
# => "Michael Jordan"
person
# => {:name => "Michael Jordan"}
這怎麼可能? full_name如何包含對person對象的引用? Ruby中是否有方法可以「查看」變量的引用?
我已經習以爲常寫過類似上面的代碼,但現在我試圖進一步理解發生了什麼,我很難過。
這完全是關於「綁定」。看看這裏的初學者 - http://ruby-doc.org/core-2.2.0/Binding.html – Jon