iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
自我挑戰組

打破結界~ Ruby on Rails ~面試題!系列 第 10

Day-10 符號Symbol 跟字串String有什麼不同?

  • 分享至 

  • xImage
  •  

Ruby 裡面有個很奇怪的東西,叫做符號 Symbol ,他的寫法是 :hello ,字串前面加上冒號,初心者應該很多人會呆住,不知道他是什麼…


簡單來說

符號 Symbol 是有名字的物件,不能變動內容,且方法少,但效率快。
字串 String 的內容可以變動,且方法多,但效率差。


有關效率問題,符號 Symbol 只會產生單一的 object id,然後字串 String 每次都會產生新的 object id ,所以字串的效率比較差,比較佔記憶體空間。可以使用 .to_s 把符號 Symbol 轉為 字串 String 。


因為符號 Symbol 的只會產生單一的 object id 的特性,所以很適合做為 hash 的 key ,因為指向記憶體的同一個位置。


參考資料
1.https://kaochenlong.com/2016/04/25/string-and-symbol/
2.https://medium.com/@anneju/ruby-%E4%B8%96%E7%95%8C%E8%A3%A1%E7%9A%84%E7%AC%A6%E8%99%9F-symbol-%E6%98%AF%E4%BB%80%E9%BA%BC-%E5%AE%83%E8%B7%9F%E5%AD%97%E4%B8%B2%E5%8F%88%E6%9C%89%E4%BB%80%E9%BA%BC%E4%B8%8D%E5%90%8C-6d66b37d5bcf


上一篇
Day-09 說明public,protected 與 private 的差別?
下一篇
Day-11 Ruby裡字串的單引號和雙引號差別?
系列文
打破結界~ Ruby on Rails ~面試題!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言