雜湊(Hash)是類似 "employee" => "salary" 這樣的索引值對的集合。雜湊的索引是通過任何物件類型的任意鍵來完成的,而不是一個整數索引,其他與數組相似。
通過鍵或值遍曆雜湊的順序看起來是隨意的,且通常不是按照插入順序。如果您嘗試通過一個不存在的鍵訪問雜湊,則方法會返回 nil。
建立雜湊
與數組一樣,有各種不同的方式來建立雜湊。您可以通過 new 類方法建立一個空的雜湊:
您也可以使用 new 建立帶有預設值的雜湊,不帶預設值的雜湊是 nil:
months = Hash.new( "month" ) or months = Hash.new "month"
當您訪問帶有預設值的雜湊中的任意鍵時,如果鍵或值不存在,訪問雜湊將返回預設值:
#!/usr/bin/ruby months = Hash.new( "month" ) puts "#{months[0]}"puts "#{months[72]}"
這將產生以下結果:
monthmonth#!/usr/bin/ruby H = Hash["a" => 100, "b" => 200] puts "#{H['a']}"puts "#{H['b']}"
這將產生以下結果:
您可以使用任何的 Ruby 對象作為鍵或值,甚至可以使用數組,所以下面的執行個體是一個有效執行個體:
雜湊內建方法
我們需要有一個 Hash 對象的執行個體來調用 Hash 方法。下面是建立 Hash 對象執行個體的方式:
Hash[[key =>|, value]* ] or Hash.new [or] Hash.new(obj) [or] Hash.new { |hash, key| block }
這將返回一個使用給定對象進行填充的新的雜湊。現在,使用建立的對象,我們可以調用任意可用的執行個體方法。例如:
#!/usr/bin/ruby $, = ", "months = Hash.new( "month" ) months = {"1" => "January", "2" => "February"} keys = months.keys puts "#{keys}"
這將產生以下結果:
下面是公用的雜湊方法(假設 hash 是一個 Hash 對象):