Ruby 哈希(Hash)
Ruby哈希(Hash)技术文档
什么是哈希(Hash)?
哈希(Hash)是一种用于存储键值对的数据结构,又称为关联数组(associative array)或字典(dictionary),它用key-value(键-值)对的方式存储数据。哈希是Ruby中最常用的数据结构之一,它可以通过键来快速地访问值。
如何创建哈希(Hash)?
Ruby中的哈希可以使用以下两种方式创建:
- 使用大括号 {},将键值对放在大括号内,用逗号隔开。
- 使用哈希字面量构造方式,将键值对放在大括号内,用逗号隔开。
以下是创建哈希的示例代码:
# 使用大括号的方式创建哈希
hash1 = { "name" => "Lily", "age" => 18, "gender" => "female" }
# 使用哈希字面量构造方式创建哈希
hash2 = { name: "Tom", age: 20, gender: "male" }
如何访问哈希(Hash)中的值?
可以通过哈希中的键来访问它的值,以下是示例代码:
hash = { "name" => "Lily", "age" => 18, "gender" => "female" }
puts hash["name"] # 输出:Lily
puts hash["age"] # 输出:18
puts hash["gender"] # 输出:female
如何添加和修改哈希(Hash)中的键值对?
可以使用[]=
和store
方法向哈希中添加或修改键值对,以下是示例代码:
hash = { "name" => "Lily", "age" => 18, "gender" => "female" }
# 添加键值对
hash["city"] = "Beijing"
# 修改键值对
hash["age"] = 19
puts hash # 输出:{"name"=>"Lily", "age"=>19, "gender"=>"female", "city"=>"Beijing"}
如何删除哈希(Hash)中的键值对?
可以使用delete
方法将键值对从哈希中删除,以下是示例代码:
hash = { "name" => "Lily", "age" => 18, "gender" => "female" }
# 删除键值对
hash.delete("age")
puts hash # 输出:{"name"=>"Lily", "gender"=>"female"}
哈希(Hash)的常见方法
has_key?(key)
或key?
:判断哈希是否包含指定的键。has_value?(value)
:判断哈希是否包含指定的值。length
或size
:返回哈希元素的个数。keys
:返回哈希中所有的键。values
:返回哈希中所有的值。each
:遍历哈希中的每一个键值对。clear
:删除哈希中所有的键值对。
以下是示例代码:
hash = { "name" => "Lily", "age" => 18, "gender" => "female" }
puts hash.has_key?("name") # 输出:true
puts hash.key?("gender") # 输出:true
puts hash.has_value?(18) # 输出:true
puts hash.length # 输出:3
puts hash.keys # 输出:["name", "age", "gender"]
puts hash.values # 输出:["Lily", 18, "female"]
hash.each {|key, value| puts "#{key} is #{value}"}
# 输出:
# name is Lily
# age is 18
# gender is female
hash.clear
puts hash # 输出:{}
总结
通过哈希,我们可以方便地存储和访问键值对,哈希中的键具有唯一性,它可以快速地查找值。同时,我们还可以使用哈希的常见方法来操作哈希数据。