gpt4 book ai didi

ruby - Ruby 中的哈希值存储为副本?

转载 作者:数据小太阳 更新时间:2023-10-29 08:38:15 25 4
gpt4 key购买 nike

当我运行下面的代码时,我得到

false
false

作为输出。我希望这样:

false
true
true

代码:

a = Object.new
b = Object.new

my_hash = {}
my_hash['one'] = [a, b]
my_hash['two'] = [b]

my_hash.each do |key, value|
puts value == b
end

在迭代器的“value”中引用的对象似乎与“a”和“b”不是相同的对象。为什么?

最佳答案

代码正在比较数组(哈希值)和对象 b

你应该比较数组的每一项以获得预期的结果:

a = Object.new
b = Object.new

my_hash = {}
my_hash['one'] = [a, b]
my_hash['two'] = [b]

my_hash.each do |key, array|
array.each do |item| # <---
puts item == b
end # <---
end

输出:

false
true
true

关于ruby - Ruby 中的哈希值存储为副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21397032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com