以下两个陈述内部是否相同? 对于大型阵列,它们的性能是否相同?
my $Count=scalar @Array; #1
my $Count=0; foreach (@Array) { $Count++;} # 2
答案 0 :(得分:10)
他们完全不同。 Perl知道数组的大小,所以第一个是一个简单的操作(它不需要遍历数组来确定它的大小)。
答案 1 :(得分:8)
如果没有先做一些重要的测量,请不要担心“最快”。
不要担心最快,而要考虑哪种方式最清楚。
然而,问题的具体答案是for
循环会慢得多,因为它正在计算Perl已经知道的值。