如何在Ruby 1.9中只获得一个有序散列的子集?
发布时间:2020-12-16 19:36:34 所属栏目:百科 来源:网络整理
导读:我们来看这个例子: 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]] …但这感觉很混乱,我不想为了这样的操作来投掷
我们来看这个例子:
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} 至少哈希不是演员,但在我看来还不是非常优雅. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |