好久沒有寫這種類似的文章了呢XD
最近一直在寫自動化,但沒花甚麼時間去理解使用的語言
看來我依然是離不開這種學習方式呢XD 實在是很有趣
Ruby 是一個挺有趣的語言,這邊就不詳細介紹 因為其他文章以及他自己本身的 Document 就講了太多太多了
有興趣的可以到這裡
官方文件
https://www.ruby-lang.org/zh_tw/documentation/ruby-from-other-languages/
Ruby 也可這樣寫
https://kaochenlong.com/2014/10/16/happy-programming-ruby/
今天主要要紀錄的是變數和物件之間的差異
變數在這個萬物幾乎皆物件的世界裡,變數像是一個物件裡的"標籤 (Label)"
從code來開始看吧
我宣告一個 A 為 "abc" (字串物件)
a = "abc"
b = a
a.upcase!
puts b
猜猜會輸出怎樣的b?
答案是出現 "ABC"
可以看得出來是 a 跟 b 同時指向了同一個物件,而導致了這樣的結果
那我們要如何知道是真的這樣的事情發生了呢?
可以使用object_id來確認這件事
所以...code 就變這樣
a = "abc"
b = a
a.upcase!
puts b
puts b.object_id
puts a.object_id
這時就可以發現他們兩個的 object_id 就會相同了
如果真的要用同一個物件時,就會建議使用 clone方法來做
所以應該要這樣
a = "abc"
b = a
a.upcase!
puts b
b = a.clone
b.downcase!
puts b
puts a
這樣子就不會影響到 a 的物件啦!!
小小筆記一下這個 避免以下不小心踩到這個雷ˊ_>ˋ