当前位置:  开发笔记 > 后端 > 正文

使用Hash #dig或Lonely运算符(&.)安全地为嵌套哈希值赋值

如何解决《使用Hash#dig或Lonely运算符(&.)安全地为嵌套哈希值赋值》经验,为你挑选了1个好方法。



1> Jordan Runni..:

它并非没有它的警告(如果你从其他地方收到哈希值,它就不起作用),但一个常见的解决方案是:

hash = Hash.new {|h,k| h[k] = h.class.new(&h.default_proc) }

hash[:data][:user][:value] = "Bob"
p hash
# => { :data => { :user => { :value => "Bob" } } }


您还可以为现有哈希设置默认proc:`hsh.default_proc = proc {| h,k | h [k] = Hash.new(&h.default_proc)}`
推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有