我们来看这个例子:
d = {"a" => 1,"b" => 2,"c" => 3,"d" => 4}
由于现在已经排序了哈希值,我可能需要从a到b或从c到d获取数据.问题是我不能做d [0..1]或d [2..3].
我可以做:
irb > d.to_a[0..1] => [["a",1],["b",2]]
…但这感觉很混乱,我不想为了这样的操作来投掷我的哈希.
有没有更清洁的解决方案来处理这个?
# Holy Grail irb > d[0..1] => {"a" => 1,"b" => 2}
解决方法
你可以做:
> a = {"a" => 1,"d" => 4} > a.slice(*a.keys[0..1]) => {"a" => 1,"b" => 1}
至少哈希不是演员,但在我看来还不是非常优雅.
原文地址:https://www.jb51.cc/ruby/271479.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。