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

来实现你要求的排序.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,815评论 18 399
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 4,834评论 0 4
  • 从匹配中返回值 Match 对象 成功的匹配总是返回一个 Match 对象, 这个对象通常也被放进 $/ 中, (...
    焉知非鱼阅读 5,847评论 0 1
  • 昨天微博空间被几张图片刷了屏,看完后我的心情更多的是感慨,斯人已逝,却留给人们无限的痛恨与惋惜。 这是哪一个?是永...
    娑与独活阅读 2,271评论 0 3
  • 昨天楼下小姑娘的妈妈晚上十点多来敲门,问我家里有没有尼美舒利,她女儿高烧38度,喝了两次布洛芬混悬液愣是退不下去。...
    王者归去昔阅读 2,454评论 0 0

友情链接更多精彩内容