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 将哈希的内容转为字符串返回。

上一篇: Ruby数组 下一篇: Ruby日期时间