我想知道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