Ruby雜湊是唯一鍵及其值的集合。 它們與陣列類似,但陣列只能使用整數作為索引,雜湊使用任何物件型別。 它們也稱為關聯陣列,字典或對映。
如果使用不存在的鍵存取雜湊,則將返回nil
。
語法
name = {"key1" => "value1", "key2" => "value2", "key3" => "value3"...}
OR
name = {key1: 'value1', key2: 'value2', key3: 'value3'...}
Ruby雜湊是通過在{}
花括號中編寫鍵值對來建立的。要獲取雜湊值,請在[]
方括號內寫入所需的鍵名稱。
範例
#!/usr/bin/ruby
# file : hashes-create.rb
color = {
"Rose" => "red",
"Lily" => "purple",
"Marigold" => "yellow",
"Jasmine" => "white"
}
puts color['Rose']
puts color['Lily']
puts color['Marigold']
puts color['Jasmine']
執行上面範例程式碼,得到以下結果 -
F:\worksp\ruby>ruby hashes-create.rb
red
purple
yellow
white
F:\worksp\ruby>
可以通過在已存在的雜湊中新增或刪除鍵值對來修改Ruby雜湊。
範例
#!/usr/bin/ruby
# file : hashes-modify.rb
color = {
"Rose" => "red",
"Lily" => "purple",
"Marigold" => "yellow",
"Jasmine" => "white"
}
color['Tulip'] = "pink"
color.each do |key, value|
puts "#{key} color is #{value}"
end
執行上面範例程式碼,得到以下結果 -
F:\worksp\ruby>ruby hashes-modify.rb
Rose color is red
Lily color is purple
Marigold color is yellow
Jasmine color is white
Tulip color is pink
F:\worksp\ruby>
Ruby雜湊有很多方法。 一些是公共類方法和一些公共範例方法。
公共類方法
方法 | 描述 |
---|---|
Hash[object] | 用給定的物件建立一個新的雜湊。 |
new(obj) | 返回一個新的空雜湊。 |
try_convert(obj) | 嘗試將obj 轉換為雜湊。 |
方法 | 描述 |
---|---|
hsh==other_hash | 如果它們包含相同的鍵和值對,則兩個雜湊值相等。 |
hsh[key] | 從相應的鍵取回值。 |
hsh[key] = value | 將新值與給定鍵相關聯(賦值) |
assoc(obj) | 在雜湊中比較obj 。 |
clear | 從雜湊中刪除所有鍵值對或是清空所有資料。 |
compare_by_identity | 按其標識比較雜湊鍵。 |
compare_by_identity? | 如果雜湊通過其標識比較其鍵,則返回true 。 |
default(key=nil) | 返回預設值 |
default = obj | 設定預設值 |
delete(key) | 刪除鍵值對 |
each | 在雜湊中為每個鍵呼叫一次 |
empty? | 如果雜湊不包含鍵值對,則返回true 。 |
eql>(other) | 如果雜湊和其他兩者都具有相同的內容,則返回true |
fetch(key[, default]) | 從給定鍵返回雜湊值。 |
flatten | 返回一個新的陣列,這是這個雜湊的一維平坦化資料值。 |
has_key?(key) | 如果雜湊中存在給定鍵,則返回true 。 |
has_value?(value) | 如果給定的值存在於雜湊中,則返回true 。 |
include?(key) | 如果雜湊中存在給定鍵,則返回true 。 |
to_s/ inspect | 將雜湊的內容轉為字串返回。 |