我最近开始学习ruby和hash。起初,我知道散列是无序的,这是有道理的,但现在我发现散列是随ruby的更高版本一起排序的。我真的不明白这背后的原因和概念。
我能了解一下这些有序散列的用途吗?对于常规散列和有序散列,可能的用例也很好。

最佳答案

有些人喜欢依赖散列的顺序,因为顺序散列记住键/值对的插入顺序。这允许程序员使用类似于队列的散列来随机访问与键相关联的值。如果它们打算动态更改值,然后在队列的键/值对上迭代以再次按插入顺序检索它们,那么这将非常有用。
此外,它们不必像使用基于数组的队列那样向队列中提供索引,而是可以提供符号名称。
而不是:

queue[0]

它们可以使用:
queue[:fred]

这是我能看到的唯一一个有序散列的用例;用一个保留插入顺序的键队列来复制功能是非常容易的。

09-11 08:33