Si j'itère une fois sur un hachage, puis le refais sans en modifier le contenu, est-il garanti que les clés apparaissent dans le même ordre ?
Un test rapide le suggère :
> h = {'a' => 1, 'b' => 2, 'c' => 3}
> 100_000.times.map { h.to_s == h.to_s }.all?
=> true
Une autre question : si ce qui précède est autorisé, puis-je le parcourir en changeant uniquement les valeurs, sans ajouter de nouvelles clés, et faire en sorte que l'ordre des clés reste inchangé ?
similaire à cette question sur Python : Les dicts préservent-ils l'ordre d'itération s'ils ne sont pas modifiés ?
Contrairement à la proposition de duplicata, je ne suis pas intéressé par le fait que les éléments aient un ordre entièrement spécifié, mais seulement par la restriction selon laquelle deux itérations consécutives sans modification fournissent la même séquence.