在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