红宝石:: Hash#dig
是否曾经想过是否有更好的方法遍历多层哈希或数组以检索特定值?幸运的是,Ruby2.3引入了一种名为的新方法 dig。
catalogue = {
drinks: {
apple_juice: {
stock: 8,
price_per_unit: 2.4
},
orange_juice: {
stock: 4,
price_per_unit: 2.2
}
}
}给定上述哈希值,我们将通过以下行访问每单位橙汁的价格。
catalogue[:drinks][:carrot_juice][:price_per_unit] => NoMethodError: undefined method `[]' for nil:NilClass
为了减轻Rails引发的错误,我们需要在导航散列结构时检查每个键的存在。
catalogue[:drinks] && catalogue[:drinks][:carrot_juice] && catalogue[:drinks][:carrot_juice][:price_per_unit]
通过使用 dig 我们遵循 DRY 并通过平稳处理nil值来检索每个键对象的值。
catalogue.dig(:drinks, :carrot_juice, :price_per_unit) => nil catalogue.dig(:drinks, :apple_juice, :price_per_unit) => 2.4
其他连结
RubyDoc–Hash#dig
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话