2023-05-05 03:02PM
在 Ruby 中,哈希表是一种键值对集合,支持高效的元素查找和修改。使用哈希表可以存储各种类型的数据,如字符串、数字、数组、哈希表等。
Ruby 提供了多种用于哈希表合并和存储的方法,如 merge
、merge!
、store
和 []=
。下面我们来分别介绍这些方法的用法。
merge
方法merge
方法可以将两个哈希表合并为一个新的哈希表,并返回合并后的哈希表。如果合并的两个哈希表中有相同的键,则取后者的值。例如:
hash1 = {a: 1, b: 2}
hash2 = {b: 3, c: 4}
new_hash = hash1.merge(hash2)
puts new_hash # {:a=>1, :b=>3, :c=>4}
在上面的例子中,hash1
和 hash2
合并后生成了一个新的哈希表 new_hash
,其中键 b
的值由后者 hash2
的值 3
覆盖了前者 hash1
的值 2
。
merge!
方法merge!
方法可以将另一个哈希表合并到当前哈希表中,并修改当前哈希表。如果合并的两个哈希表中有相同的键,则取后者的值。例如:
hash1 = {a: 1, b: 2}
hash2 = {b: 3, c: 4}
hash1.merge!(hash2)
puts hash1 # {:a=>1, :b=>3, :c=>4}
在上面的例子中,merge!
方法将 hash2
合并到了 hash1
中,并修改了 hash1
的值。
store
方法store
方法可以将一个键值对存储到哈希表中。如果哈希表中已经存在该键,则将该键的值更新为新的值。例如:
hash = {a: 1, b: 2}
hash.store(:c, 3)
puts hash # {:a=>1, :b=>2, :c=>3}
hash.store(:b, 4)
puts hash # {:a=>1, :b=>4, :c=>3}
在上面的例子中,store
方法分别将键值对 :c => 3
和 :b => 4
存储到了哈希表中。
[]=
方法[]=
方法可以将一个键值对存储到哈希表中。如果哈希表中已经存在该键,则将该键的值更新为新的值。与 store
方法不同的是,[]=
方法支持使用简化的语法直接存储键值对。例如:
hash = {a: 1, b: 2}
hash[:c] = 3
puts hash # {:a=>1, :b=>2, :c=>3}
hash[:b] = 4
puts hash # {:a=>1, :b=>4, :c=>3}
在上面的例子中,[]=
方法分别使用简化的语法将键值对 :c => 3
和 :b => 4
存储到了哈希表中。
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论