我最近开始学习 Ruby 和哈希表。一开始我知道哈希表是无序的,这很容易理解,但现在我发现在较新的版本中哈希表是有序的。我并不真正理解为什么会这样或这背后的概念。
能否给我一些关于有序哈希表用途方面的见解呢?普通哈希表和有序哈希表之间的使用情况也可以提供。
我最近开始学习 Ruby 和哈希表。一开始我知道哈希表是无序的,这很容易理解,但现在我发现在较新的版本中哈希表是有序的。我并不真正理解为什么会这样或这背后的概念。
能否给我一些关于有序哈希表用途方面的见解呢?普通哈希表和有序哈希表之间的使用情况也可以提供。
queue[0]
queue[:fred]
我唯一能看到有序哈希的使用场景是:可以用保持插入顺序的键队列轻松地复制其功能。
回顾Matz之前的一些帖子,他对为什么要实现它非常含糊。请参阅https://www.ruby-forum.com/topic/166075
他基本上表示,它是为了适应某些边缘情况而实现的,但他似乎没有更详细地阐述。他还表示,性能没有影响,只有内存消耗略微增加。
def f a: 42, **args
被调用为 f(x: true, a: 0, y: false)
。 Enumerator
得到了 peek
和其他方法,Hash
只是继承了这种行为。 - Aleksei MatiushkinHash
的实例,其中 sha
是键。通过按 Date
排序,使它们易于以人类友好的方式进行迭代。