Ruby哈希

Ruby哈希是唯一鍵及其值的集合。 它們與數組類似,但數組只能使用整數作爲索引,哈希使用任何對象類型。 它們也稱爲關聯數組,字典或映射。

如果使用不存在的鍵訪問哈希,則將返回nil

語法

name = {"key1" => "value1", "key2" => "value2", "key3" => "value3"...}  
                    OR  
name = {key1:  'value1', key2:  'value2', key3:  'value3'...}

創建Ruby哈希

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哈希

可以通過在已存在的哈希中添加或刪除鍵值對來修改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哈希方法

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

將哈希的內容轉爲字符串返回。