Perl6 的陣列排序-利用複合指定運算子

Home » Perl6 » Perl6入門 » Perl6 的陣列排序-利用複合指定運算子
2015-07-26 Perl6入門 尚無留言

Perl6 的複合指定運算子(compound assignment operators) 比 Perl5 多了一個 「.=」,用法如下:

my @array=<11 8 3>;
@array .= sort; # 把陣列排序之後,再存回去陣列中
say @array;

#=> 結果:
# 11 3 8

咦,11 不是比 3 大嗎?怎會排第一個?是這樣的,這裡的排序,預設是用字元的順序,若要改成數字排序,可改寫如下:

my @array=<11 8 3>;
@array .= sort: { $^a <=> $^b }; # 把陣列排序之後,再存回去陣列中
say @array;

#=> 結果:
# 3 8 11

也就是說,用 { $^a <=> $^b } 即可指揮 sort 用數字來排序大小。

LEAVE A COMMENT

thirty nine  −    =  thirty four

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