Perl6 的 loop 和 for

Home » Perl6 » Perl6入門 » Perl6 的 loop 和 for
2015-07-26 Perl6入門 尚無留言

Perl6 的迴圈語法有很大的改變,Perl5 的 for 變成 Perl6 的 loop,Perl5 的 foreach 變成 Perl6 的 for,用法如下:

loop: 無窮迴圈

loop {
   say “這是無窮迴圈";
   last; # 用 last 可終止 loop 迴圈
}

loop:替換 Perl5 的 for

my $sum = 0;
loop (my $i = 1; $i < 100; $i++) {
   $sum += $i;
}
say $sum;  # 4950

Perl6 的 for:

my @array = ;
for @array -> $var {
   say $var;
}

# => 結果如下:
# a
# b
# c

使用預設變數 $_ 也可以:

my @array = ;
for @array {
   say $_;
}

# => 結果如下:
# a
# b
# c

用 .say 或 $_.say 也行:

my @array = ;
for @array {
   .say;
   $_.say; # 此作法同上一列
}

# => 結果如下:
# a
# a
# b
# b
# c
# c

至於迴圈控制,可用 next、redo、last:

next 跳過此次迴圈,例: next if $_ == 20;
redo 把此次迴圈再做一次,例:redo if $_ == 10;
last 結束迴圈,和 C 的 break 同樣功能,例: last if $_ == 50

結論:Perl6 真的比 Perl5 有彈性多了,更接近自然語言了。 🙂

LEAVE A COMMENT

four  ×    =  twenty eight

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料