This question already has answers here:
Alternate for making such a thing work in perl : `for(10…0)`

(3个答案)


已关闭6年。




Perl有一个范围运算符,当它在foreach循环中使用时,不会创建一个临时数组:
foreach (1 .. 1_000_000) {
    # code
}

如果第一个整数小于第二个整数,则不运行任何迭代:
foreach (1_000_000 .. 1) {
    # code here never runs
}

我可以使用内置的reverse,但这会保持不创建临时数组的优化吗?
foreach (reverse 1 .. 1_000_000) {
    # code
}

有没有一种方法与范围运算符一样好而又快速地减少数字,而不是增加数字?

最佳答案

不太漂亮的解决方案,

for (my $i=1_000_000; $i >= 1; $i--) {

   print "$i\n";
}

关于perl - 范围运算符从最大: 10.减小到最小.1 ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26505835/

10-12 20:56