第一次聽到雜湊(Hash)這個詞,
腦中閃過的是問號,
再閃過的是什麼七拼八湊的東西嗎?
簡單來說Hash是由一組一組的Key(鑰匙)、Value(值/資料)所組成的散列參數。
表現的形式有新、舊兩種,例如我們有一位20歲Ruby的資料儲存:
old_hash = {:name => "Ruby", :age => 20}
new_hash = {name: "Ruby", age: 20 }
前面的:name和:age就是Key,
而後面的"Ruby"和20就是對應的值,
要有對的Key才能得到對應的Value。
而Hash,我們稱雜湊或是散列,沒有順序之分的。
如上面的例子,
因為使用的是Hash,
name: "Ruby"和age: 20兩者之間是沒有提取順序的。
因此無法用位置找資料,
只能用Key得到對應的Value。
new_hash = {name: "Ruby", age: 20 }
p new_hash[0] #nil
p new_hash[1] #nil
p new_hash[:name] #"Ruby"
或是使用each,將資料一個個印出來。
new_hash = {name: "Ruby", age: 20 }
new_hash.each do |x|
p x
end
會印出
[:name, "Ruby"]
[:age, 20]
這也是為何雜湊被稱作散列的原因。
Ruby
Hash