Ruby Hash .keys和.values,可以安全地假设相同的顺序?

基本的irb测试表明Ruby Hash以匹配顺序返回.keys.values 。 假设是这种情况可以安全吗?

是。 根据Ruby Docs for Hash ,“Hashes按照插入相应键的顺序枚举它们的值。” 因此,如果以相同的方式创建哈希,则应始终获得相同的哈希顺序。

取决于您运行的Ruby版本。 高达1.8,枚举不是按插入顺序排列的。 从1.9开始,它将根据插入顺序枚举键和值,因此,只要您运行1.9,就可以安全地假设。