程式扎記: [ Ruby 教學 ] Ruby.new : Arrays and Hashes

2010年9月10日星期五

[ Ruby 教學 ] Ruby.new : Arrays and Hashes


Ruby 的 arrays 與 hashes 事實上就是一個有 index的集合, 如array 就是以一個數字 做為 key 的集合. 而 hashes則可以使用任何 物件做為 key. 具體使用方法請參考如下代碼:
  1. a = [1'cat'3.14] # array with three elements  
  2. puts a[0] # show first element  
  3. a[2] = nil # assign last element to be null  
  4. puts a # show all elements in array a.  
你可以由如下方法建立empty array:
  1. empty1 = []  
  2. empty2 = Array.new  
Ruby 提供一個相當方便的符號 %w{...}, 幫助使用者快速進行字串的split並將只存至 arrays, 請參考如下用法:
  1. b = %w{ ant bee cat dog elk}  
  2. puts   
  3. puts b[0]  
  4. puts b[3]  
輸出結果為:
ant
dog

至於Ruby 的 hashes使用方法和arrays 很相似, 請參考如下代碼:
  1. instSection = {  
  2.   'cello'     => 'string',  
  3.   'clarinet'  => 'woodwind',  
  4.   'drum'      => 'percussion',  
  5.   'oboe'      => 'woodwind',  
  6.   'trumpet'   => 'brass',  
  7.   'violin'    => 'string'  
  8. } # 進行 hash 賦值  
  9.   
  10. puts instSection['oboe']  #取出 key 為 oboe 的 hash element 值.  
  11. puts instSection['cello']    
  12. puts instSection['bassoon']    
輸出結果為:
woodwind
string
nil
Ps. 因為hash 不存在key為 bassoon, 故返回nil.
如果你需要在建立hashes時同時給定初始值, 你可以參考如下代碼:
  1. histogram = Hash.new(0)  # 將hash 值初始為 0  
  2. puts histogram['key1']  
  3. puts histogram['key1']  =  histogram['key1'] + 1  
  4. puts histogram['key1']    
執行結果為:
0
1
1
This message was edited 5 times. Last update was at 11/09/2010 12:07:36

沒有留言:

張貼留言

網誌存檔