1. 程式人生 > >ruby 數據類型Symbol

ruby 數據類型Symbol

列表 ruby str 選擇 符號 散列表 優勢 AS 互轉

一.符號創建

符號是Symbol類的實例,使用冒號加一個標識符即可創建符號     

:a
:"This is a symno"

二.符號字符串相互轉換

p :symbol.to_s    #=> "symbol"
p symbol.to_sym    #=> :symbol

三.符號與字符串的比較

  1. 符號與字符串的比較,優勢在於對內存消耗較少。因為每一個字符串都是一個對象,一個字符串每出現一次Ruby就會創建一個String對象,所以使用字符串的開銷非常大,而符號則不會
  2. 符號是不可變的,不能對符號的進行增、刪、改, 但字符串可以
  3. 符號是唯一的(相同名稱的符號object_id是一樣的,說明是同一個對象),而字符串不是
  4. 使用場景區分:如果使用字符串的內容,這個內容可能會變化,使用字符串String;如果使用固定的名字或者說是標識符,則需要使用符號Symbol;實際應用中,如枚舉值,關鍵字(散列表關鍵字,方法的參數)等情況都會選擇使用符號

ruby 數據類型Symbol