2012-07-05 19 views

回答

16

是的。根據Ruby Docs for Hash,「哈希按照相應的鍵被插入的順序枚舉它們的值。」因此,如果以相同的方式創建散列,您應始終獲得相同的散列順序。

+2

請注意,對於1.9而言,這是正確的,但不一定是1.8和更早版本 – dbenhur 2012-07-05 19:22:25

+1

在1.8版中,您可以使用keys = h.keys;值= h.values_at *鍵 – djconnel 2012-07-05 19:51:07

8

取決於您正在運行的是哪個Ruby版本。 最多爲1.8,枚舉不是插入順序的。從1.9開始,它將根據插入順序枚舉鍵和值,因此,只要您運行1.9,就可以安全地進行假設。