Perl 6 - 圆括号和方括号在创建数组时的区别

[ ] 和 ( ) 的区别

# 无法正常排序
my  @s = [2443,5,33, 90, -9, 2, 764];
say @s.sort;     # 2443 5 33 90 -9 2 764 
say @s.WHAT;     # (Array)
say @s.perl;     # [[2443, 5, 33, 90, -9, 2, 764]]<>

# 正常排序
my  $array = [2443,5,33, 90, -9, 2, 764];
say $array.sort; #  -9 2 5 33 90 764 2443
say $array.WHAT; # (Array)
say $array.perl; # [2443, 5, 33, 90, -9, 2, 764]

my  @s = (2443,5,33,90,-9,2,764); 
say @s.sort;     # -9 2 5 33 90 764 2443
say $array.WHAT; # (Array)
say @s.perl;     # [2443, 5, 33, 90, -9, 2, 764]<>

可见, 使用 [ ]( ) 创建数组是不一样的.

my @s = [2443, 5, 33, 90, -9, 2, 764];

这创建了一个数组, 并把该数组赋值给 @s[0], 所以 @s 只有一个元素, 所以对 @s 进行排序是没有意义的. 然而你可以使用:

@s[0].sort.say

来实现你要求的排序.

    原文作者:焉知非鱼
    原文地址: https://www.jianshu.com/p/6554ae01baee
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞