📅  最后修改于: 2023-12-03 15:34:45.842000             🧑  作者: Mango
在 Ruby 中,哈希是一种类似于字典的数据结构,允许你将一组键值对存储在一个对象中。哈希在 Ruby 中非常常见,可以用于存储配置文件、路由表等。
为哈希赋值是添加键值对的过程,下面我们来看几种不同的方式。
直接赋值是最常见的方式,用于添加单个键值对。例如:
hash = {}
hash[:name] = "Tom"
puts hash # 输出 { :name => "Tom" }
在这个例子中,我们首先创建了一个空哈希对象,然后将键 :name
的值设置为 "Tom"
。
批量赋值可以同时添加多个键值对。例如:
# 使用 Hash.new 创建空哈希对象
hash = Hash.new
hash.update({ :name => "Tom", :age => 30 })
puts hash # 输出 { :name => "Tom", :age => 30 }
# 直接将键值对传入哈希对象构造函数
hash = Hash[:name, "Tom", :age, 30]
puts hash # 输出 { :name => "Tom", :age => 30 }
在这个例子中,我们使用了 update
方法和哈希构造函数来分别添加多个键值对。
哈希中可以设置一个默认值,如果访问一个不存在的键时,哈希就会返回默认值。例如:
# 定义默认值
default = { :name => "Unknown" }
# 直接赋值
hash = {}
hash.default = default
hash[:name] = "Tom"
hash[:age] = 30
puts hash[:name] # 输出 "Tom"
puts hash[:gender] # 输出 { :name => "Unknown" }
# 在构造函数中设置默认值
hash = Hash.new(default)
hash[:name] = "Tom"
hash[:age] = 30
puts hash[:name] # 输出 "Tom"
puts hash[:gender] # 输出 { :name => "Unknown" }
在这个例子中,我们设置了默认值为 { :name => "Unknown" }
,然后分别使用了直接赋值和构造函数来添加键值对。当访问一个不存在的键时,哈希就会返回默认值。
markdown:
## 代码片段
下面是一个完整的程序示例,展示了上述所有用法:
```ruby
# 定义默认值
default = { :name => "Unknown" }
# 直接赋值
hash = {}
hash.default = default
hash[:name] = "Tom"
hash[:age] = 30
puts hash[:name] # 输出 "Tom"
puts hash[:gender] # 输出 { :name => "Unknown" }
# 批量赋值
hash = Hash.new
hash.update({ :name => "Tom", :age => 30 })
puts hash # 输出 { :name => "Tom", :age => 30 }
# 在构造函数中设置默认值
hash = Hash.new(default)
hash[:name] = "Tom"
hash[:age] = 30
puts hash[:name] # 输出 "Tom"
puts hash[:gender] # 输出 { :name => "Unknown" }
运行结果:
Tom
{ :name => "Unknown" }
{ :name => "Tom", :age => 30 }
Tom
{ :name => "Unknown" }
完整的程序示例可运行,展示了上述所有用法。