gpt4 book ai didi

ruby Hash 包括另一个哈希,深度检查

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:55 26 4
gpt4 key购买 nike

进行这种深度检查的最佳方法是什么:

{:a => 1, :b => {:c => 2, :f => 3, :d => 4}}.include?({:b => {:c => 2, :f => 3}}) #=> true

谢谢

最佳答案

我想我从那个例子中明白了你的意思(不知何故)。我们检查子哈希中的每个键是否在超哈希中,然后检查这些键的对应值是否以某种方式匹配:如果值是哈希,则执行另一次深度检查,否则,检查值是否相等:

class Hash
def deep_include?(sub_hash)
sub_hash.keys.all? do |key|
self.has_key?(key) && if sub_hash[key].is_a?(Hash)
self[key].is_a?(Hash) && self[key].deep_include?(sub_hash[key])
else
self[key] == sub_hash[key]
end
end
end
end

您可以看到它是如何工作的,因为 if 语句返回一个值:计算的最后一个语句(我没有使用三元条件运算符,因为那会使它变得更丑陋且更难阅读)。

关于ruby Hash 包括另一个哈希,深度检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3826969/

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