在ruby中常會用到符號(Symbol)和哈希參數,之所以要有Symbol是因爲它更節省內存同一個Symbol在系統中只會存在一個,而不像字符串,會存在多個實例,這個Java中的字符串對象不一樣。常用來作爲hash的key或者是方法的參數。
hosts = { :beijing => 'machine1', :shanghai => 'machine2', :guangzhou => 'machine3', :tianjin => 'machine4', :shenzhen => 'machine5' }
那哈希參數呢?
通常我們定義的函數的參數的個數和順序是寫死的,調用函數的時候要確保參數的個數、順序匹配,有時候這樣很不方便,使用哈希參數可以解決這個問題。
ROR ,sinatra中就大量地運用這種方式,也許你已經看到了,到處都是 Symbol 和哈希。比如:
link_to 'Show', :action => 'show', :id => product add_column :products, :price, :decimal, :precision => 8, :scale => 2, :default => 0 |
關於更多說明請看參考
參考http://www.ibm.com/developerworks/cn/opensource/os-cn-rubysbl/index.html