数组 – 迭代Perl数组的最佳方式

前端之家收集整理的这篇文章主要介绍了数组 – 迭代Perl数组的最佳方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
哪个是最好的实现(在速度和内存使用方面)迭代Perl数组?有什么更好的方法吗? (@Array不需要保留)。

实施1

foreach (@Array)
{
      SubRoutine($_);
}

实施2

while($Element=shift(@Array))
{
      SubRoutine($Element);
}

实施3

while(scalar(@Array) !=0)
{
      $Element=shift(@Array);
      SubRoutine($Element);
}

实施4

for my $i (0 .. $#Array)
{
      SubRoutine($Array[$i]);
}

实施5

map { SubRoutine($_) } @Array ;

解决方法

>在速度方面:#1和#4,但在大多数情况下不是太多。

你可以写一个基准来确认,但我怀疑你会发现#1和#4稍快,因为迭代工作是在C而不是Perl完成,不会发生不必要的复制数组元素。 ($ _别名为#1中的元素,但#2和#3实际上从数组中复制标量。)

#5可能类似。
>在内存使用:它们都是相同的,除了#5。

for(@a)是特殊情况下,以避免平铺数组。循环遍历数组的索引。
>在可读性方面:#1。
>在灵活性方面:#1 /#4和#5。

#2不支持为false的元素。 #2和#3是破坏性的。

原文链接:https://www.f2er.com/Perl/173539.html

猜你在找的Perl相关文章