数组 – 迭代Perl数组的最佳方式
发布时间:2020-12-15 21:28:53 所属栏目:大数据 来源:网络整理
导读:哪个是最好的实现(在速度和内存使用方面)迭代Perl数组?有什么更好的方法吗? (@Array不需要保留)。 实施1 foreach (@Array){ SubRoutine($_);} 实施2 while($Element=shift(@Array)){ SubRoutine($Element);} 实施3 while(scalar(@Array) !=0){ $Element=sh
哪个是最好的实现(在速度和内存使用方面)迭代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可能类似。 for(@a)是特殊情况下,以避免平铺数组。循环遍历数组的索引。 #2不支持为false的元素。 #2和#3是破坏性的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |