先看**:
person1 = "tim"
person2 = person1
person1[0] = 'j'
puts person1
puts person2
輸出的是:
jim
jim
可見,變數儲存的是物件的引用而非物件本身。
但是我們可以使用string的dup方法來建立乙個新的,具有相同內容的string物件。
**如下:
person1 = "tim"
person2 = person1.dup
person1[0] = 'j'
puts person1
puts person2
輸出:jim
tim
當然,當我們試圖去變更乙個被凍結的物件時,ruby將引發乙個typeerror異常。
person1 = "tim"
person2 = person1
person1.freeze
person2[0] = 'j'
輸出:test.rb:4:in `=': can't modify frozen string (typeerror)
from test.rb:4
Ruby中的物件導向
物件導向是ruby的核心思想,我先列舉幾個單詞然後來解釋他們各自的意思。class state,method,instance,object,constructor,new,id,instance,variables,message class是生產類的母體,而constructor是生產類的機器。...
Ruby 中的類和物件
最近在ruby china中閒逛,無意中發現了一位提出的問題,這個問題相當有意思,並且促使我寫下了這篇部落格。原問題是這樣描述的 class object defdo it puts do it endend object do it 這個class method 怎麼來的?object new d...
Ruby 中的類和物件
近在ruby china中閒逛,無意中發現了一位提出的問題,這個問題相當有意思,並且促使我寫下了這篇部落格。原問題是這樣描述的 class object defdo it puts do it endend object do it 這個class method 怎麼來的?object new do...