【发布时间】:2019-03-19 04:41:29
【问题描述】:
Ruby 文档声明了 Hash#values:
哈希按照插入相应键的顺序枚举它们的值。
Hash#keys 似乎也是如此,但没有记录。
这可能仍然是真的吗?是否适用于所有键集?
【问题讨论】:
-
简短回答,是的。枚举顺序遵循其他几种语言。这是它们被插入的顺序。但是,初始化后可以自行更改该顺序,在这种情况下,它将遵循新的顺序。
-
@CarlMarkham 这应该是我会选择它的答案:) 我特别想用它来获取方法中的哈希参数,因此在这种情况下哈希不会在调用者和方法之间转换.
-
不管是不是真的,我从来没有遇到过要求在哈希中进行有序迭代的用例......为什么不使用正常的有序结构(数组)?
-
@maxpleaner 因为我正在查看发送到表示“命名参数”的方法调用的哈希值,并且 Hash#keys 按枚举顺序返回数组。
-
我不明白为什么您需要以任何特定顺序查看“命名参数”,因为您可以通过名称识别它们......但我不会强调这一点跨度>