Ruby中的變數儲存的是物件的引用

2021-04-22 16:25:06 字數 678 閱讀 4737

先看**:

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...