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