让我们这个例子:如何仅获得Ruby 1.9中有序哈希的子集?
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}
我可以看到如何编程自己这种方法,但可能有一些本机已经完成,我可以使用...?
一个范围也可能是一个有效的散列键,所以你必须使用自定义的方法这一点。我不认为没有内置任何东西,顺便说一句。 – tokland