分享

Ruby世界中 符號和字串的差別

課程中老師有提到 Ruby 世界中的符號也是一個物件
因為在Ruby中 數字也是 字串也是 符號也是的關係
常常讓人把字串和符號給搞混了!
課程中提到過在前面加上冒號 : 的字母 就是符號
舉例來說:
"apple"是一個字串
:apple 是一個符號
第一個不同
在於 符號不能被修改
就像你從來就不會想要修改 2 因為你也不知道怎麼修改他
當在Ruby 世界中 被冠上 : 的東西都是符號
也就是在這段程式中他就像是數字那樣不可以被改變
* 但是不能把數字當作是符號 雖然有點抽象 但兩個還是有所不同
而字串 / 陣列 / 變數都可以經過修改而有所不同
第二個不同
符號的效能會比字串更好 
我自己的理解是當符號之所以為符號就是因為他不動如山的待在記憶體的某處
而字串因為能夠更改的功能而需要被拿進拿出
特殊使用方法 :
當遇上了一個字串我們需要不斷地使用他 又確定不需要被更改時
我們可以將它冷凍起來 節省效能 
ex: puts " XXX ". freeze.object_id →這邊的freeze就是字面上的意思 
在更簡單一些 我們也能將字串直接轉成符號
ex: p "xxx".to_sym →將xxx 轉去 sym即為 symbol
反之
ex: p :xxx.to_s →則是將符號轉成字串
但需要謹慎使用 以免後面需要更改時發現是符號則後悔莫及
#符號  #物件  #RUBY  #Coding 
分類:學習

評論
更多文章
載入中... 沒有更多了