【发布时间】:2021-05-07 09:11:59
【问题描述】:
哪种方式更好?或者你知道更多更好的方法吗?
data = Hash.new { |h, k| h[k] = Hash.new { |h2, k2| h2[k2] = [] } } # 5 or more times
或
def object_in_hash(&object)
Hash.new { |h, k| h[k] = object.call() }
end
data = object_in_hash do object_in_hash do [] end end
【问题讨论】:
-
请描述什么是“更好”?
-
替代“更好” - 不要使用
Hash,而是创建专用类型(类,结构) -
也许您想参加一些比赛,只是为了了解“更好”做什么?
-
@Kodai :您是否尝试在 Perl 中实现类似于 autovivification 的东西,即制作 Hash,它会在引用密钥时自动创建一个新的子哈希,这确实还不存在?
-
我的意思是“更好”就是“更易读”。
标签: ruby dry code-readability