【发布时间】:2011-02-15 20:46:22
【问题描述】:
在 Ruby 中,要创建数组散列并将元素推送到这些数组中,我见过两个习惯用法。我想知道人们更喜欢哪一个,为什么。 (披露:我有自己的看法,但我想确保我没有遗漏一些明显的东西。)
方法 1:使用 Hash 的精美初始化器:
ht = Hash.new {|h,k| h[k]=[]}
ht["cats"] << "Jellicle"
ht["cats"] << "Mr. Mistoffelees"
当您使用尚不存在的键访问 ht 时,此方法会创建一个空数组。
方法 2:简单的初始化器,花哨的访问器:
ht = {}
(ht["cats"] ||= []) << "Jellicle"
(ht["cats"] ||= []) << "Mr. Mistoffelees"
人们是否对哪一种更好(或一种优于另一种的情况)有意见?
【问题讨论】: