我想知道Perl中的foreach語句是否按照一致的順序迭代數組中的項目?也就是說,如果我在同一個數組或列表中多次使用foreach,會得到不同的結果嗎?foreach語句是按順序迭代還是隨機順序?
5
A
回答
9
是的,foreach
語句中的項目按順序迭代。
你提的問題從混亂可能出現在迭代一個哈希的元素:
my %hash = ('a' => 1, 'b' => 2, 'c' => 3);
foreach my $key (keys %hash) { print $key } ; # output is "cab"
但在這看似隨機的順序是怎樣的數據都存儲在一個Perl哈希表(數據在一個Perl哈希神器表不是有序的)。這是keys
聲明是「改變」散列表的順序,而不是foreach
。
1
如果您在兩次之間沒有更改列表,它將會保持一致的順序。
0
爲什麼Perl的foreach循環哈希排序是看似隨意的理由是perlsec文件,鏈接here
相關問題
- 1. 按隨機順序按組順序
- 2. 一級鍵是按排序順序存儲,還是按SQL語句排序?
- 3. 數字是隨機順序
- 4. 是否保證在PHP中按照數組順序迭代foreach?
- 5. 按鈕的隨機順序
- 6. MySQL的順序是(不需要)隨機順序
- 7. 按隨機順序的新Guid排序
- 8. 按表現排序的隨機順序
- 9. 半隨機順序
- 10. 隨機數總是在同一順序
- 11. jQuery的.each()方法是並行還是按順序運行它的語句?
- 12. NSSet的迭代順序是什麼?
- 13. 按語句排序的SQL順序
- 14. flake8:import語句是錯誤的順序
- 15. GroupBox中TextBoxes的foreach循環按相反順序迭代?
- 16. 按順序排列,然後隨機?
- 17. ASP.net按順序隨機排列
- 18. Oracle SQL按隨機順序排列
- 19. Rails的:每按隨機順序
- 20. SQL隨機並按順序複製?
- 21. 順序按隨機的產生錯誤
- 22. 如何按順序組織隨機值?
- 23. 按隨機順序做事情嗎?
- 24. 按順序迭代設置Play框架
- 25. LevelDB:按插入順序迭代鍵
- 26. 如何按特定順序迭代?
- 27. 隨機顯示會員,而不是按字母順序
- 28. cf9 orm entityload隨機順序
- 29. 行的隨機順序Matlab
- 30. 獲取隨機順序Laravel
只要是迂腐,'keys'不改變哈希表的順序 - 如果你調用'鍵'不必插入或刪除任何密鑰就可以在同一個散列上重複,每次都會以相同的順序返回密鑰。首先將數據存儲在散列中的行爲正在改變順序。哈希將數據按確定性的順序存儲,但不可預知(爲了實際目的,使其無序)。 – 2010-05-01 10:40:16
只需將鏈接添加到相關問題:[Perl是否保證返回一致排序的散列鍵? [Stack Overflow](http://stackoverflow.com/questions/1256502/is-perl-guaranteed-to-return-consistently-ordered-hash-keys) – sdaau 2012-10-31 09:21:33