别名为自定义Ruby哈希类
我正在编写一个应用程序,它存储运行一系列度量的竞赛结果。结果有以下限制:别名为自定义Ruby哈希类,ruby,hash,subclass,Ruby,Hash,Subclass,我正在编写一个应用程序,它存储运行一系列度量的竞赛结果。结果有以下限制: 键“dq\u原因”指的是字符串数组 所有其他键默认为浮动0.0 我喜欢使用自定义的contesticsresult类来明确这些约束。我希望这个类是一个散列。我可以分为: MyThing = Class.new(OtherThing) 但我认为对核心Ruby类进行子类化有缺点。我的其他选择是什么?如何将类实例设置为具有默认值的哈希,并将“dq\u reasons”键预设为空数组 当前尝试: class ContestR
- 键
指的是字符串数组“dq\u原因”
- 所有其他键默认为浮动
0.0
contesticsresult
类来明确这些约束。我希望这个类是一个散列
。我可以分为:
MyThing = Class.new(OtherThing)
但我认为对核心Ruby类进行子类化有缺点。我的其他选择是什么?如何将类实例设置为具有默认值的哈希,并将“dq\u reasons”
键预设为空数组
当前尝试:
class ContestResult < Hash
extend Forwardable
def_delegators :@data, :[], :[]=, :each
def initialize(lyst)
@data = Hash.new {|h,k| h[k] = 0.0}
@data["dq_reasons"] = []
lyst.each {|li| @data[li]}
end
def inspect
@data
end
end
如果我对你的问题理解正确,你可以做
h = {"dq_reasons"=>[]}
随后,我将访问该网站。您可以为其提供默认值
h.fetch(4, 0.0)
如果能给我们一个否决票的理由,我们将不胜感激
h.fetch(4, 0.0)