gpt4 book ai didi

ruby - 将哈希合并到哈希子类 - 确保嵌套哈希具有子类属性

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:36 25 4
gpt4 key购买 nike

我有一个 Hash 子类,我通常想从另一个 Hash 初始化它的数据并使用它:

class ValidatedJson < Hash
@schema = {}
def initialize(hash = {})
super
JSON::Validator.validate!(@schema, hash, :validate_schema => true)
self.update(hash)
end

def [](key)
self.fetch(key)
end
end

但是,单独使用 self.update 时,任何嵌套哈希都将是 Hash 类型,而不是具有我的子类 ValidatedJson 的属性。有人知道确保这一点的快速有效方法吗?

最佳答案

我可能会模仿 ActiveSupport 的 HashWithIndifferentAccess 所做的事情,即覆盖 update() 以及构造函数。

参见 https://github.com/rails/rails/blob/master/activesupport/lib/active_support/hash_with_indifferent_access.rb实现。

关于ruby - 将哈希合并到哈希子类 - 确保嵌套哈希具有子类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12414507/

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