Ruby Hash.key和.value,可以安全地假定相同的顺序吗?

Ruby Hash.key和.value,可以安全地假定相同的顺序吗?,ruby,hash,Ruby,Hash,基本的irb测试表明Ruby哈希以匹配的顺序返回.keys和.value。可以安全地假设情况是这样吗?可以。根据“散列按插入相应键的顺序枚举其值。”因此,如果以相同的方式创建散列,则应始终获得相同的散列顺序。取决于运行的Ruby版本。 在1.8之前,枚举未按插入顺序排列。从1.9开始,它将根据插入顺序枚举键和值,因此,是的,只要您运行1.9,就可以安全地假定这一点。注意,这对于1.9是正确的,但对于1.8和早期的1.8,您可以使用keys=h.keys进行校正;values=h.values_在

基本的irb测试表明Ruby哈希以匹配的顺序返回
.keys
.value
。可以安全地假设情况是这样吗?

可以。根据“散列按插入相应键的顺序枚举其值。”因此,如果以相同的方式创建散列,则应始终获得相同的散列顺序。

取决于运行的Ruby版本。
在1.8之前,枚举未按插入顺序排列。从1.9开始,它将根据插入顺序枚举键和值,因此,是的,只要您运行1.9,就可以安全地假定这一点。

注意,这对于1.9是正确的,但对于1.8和早期的1.8,您可以使用keys=h.keys进行校正;values=h.values_在*键处