`@$array` 和其他构造的含义
Meaning of `@$array` and other constructs
我还在学习Perl 6,请原谅我的无知。我正在阅读 Operators page,我在 table:
的开头发现了一些不熟悉的结构
A Level Examples
N Terms 42 3.14 "eek" qq["foo"] $x :!verbose @$array
我重新阅读了 class 数组和 class 标量,但我无法在这些部分中找到 @$xyz
构造。 :!
和 @$
是什么意思?是否有一个方便的地方可以收集和解释所有这些符号结构?
非常感谢!!
使用 :verbose
参数是将 Bool
参数设置为带有 colon pair 的 True
的好方法。相当于:verbose(True)
。 :!verbose
只是那个的否定,设置为False
,相当于:verbose(False)
.
@$
是一种使用 @
前缀从带有印记 $
.
的标量变量中删除 container 的方法
考虑:
my $x = (1, 2, 3);
.say for $x;
输出:
(1 2 3)
对比
my $x = (1, 2, 3);
.say for @$x;
输出:
1
2
3
大部分运营商都可以直接搜索到。特别是这两种情况,不是单独的运算符,而是组合使用符号的情况。那些有点难收集方便,但文档每天都在改进。
@$foo
是 @($foo)
的缩写,其中 $foo
是一个项目变量, @(...)
语法只是调用.list
method on its argument. Both the method and the syntactic form are sometimes called the "list/array contextualizer".
它的一个用途是当您想要遍历存储在项目容器中的数组时。项目容器被内置函数视为单个项目,例如 for
循环,而在其上调用 .list
returns 没有周围项目容器的普通数组(即“强制值在列表上下文中解释"):
my $foo = [1, 2, 3];
say $foo.perl; # $[1, 2, 3]
say $foo.list.perl; # [1, 2, 3]
say @$foo.perl; # [1, 2, 3]
for $foo { ... } # One iteration
for $foo.list { ... } # Three iterations
for @$foo { ... } # Three iterations (identical to the previous line)
:!foo
是 :foo(False)
的缩写,即 named argument 的值为 False
:
sub do-something (:$verbose = True) { say $verbose; }
do-something; # True
do-something :verbose; # True
do-something :!verbose; # False
当写在术语位置但不作为参数列表的参数时,它构造一个 Pair 对象:
say (:!verbose); # verbose => False
我还在学习Perl 6,请原谅我的无知。我正在阅读 Operators page,我在 table:
的开头发现了一些不熟悉的结构A Level Examples
N Terms 42 3.14 "eek" qq["foo"] $x :!verbose @$array
我重新阅读了 class 数组和 class 标量,但我无法在这些部分中找到 @$xyz
构造。 :!
和 @$
是什么意思?是否有一个方便的地方可以收集和解释所有这些符号结构?
非常感谢!!
使用 :verbose
参数是将 Bool
参数设置为带有 colon pair 的 True
的好方法。相当于:verbose(True)
。 :!verbose
只是那个的否定,设置为False
,相当于:verbose(False)
.
@$
是一种使用 @
前缀从带有印记 $
.
考虑:
my $x = (1, 2, 3);
.say for $x;
输出:
(1 2 3)
对比
my $x = (1, 2, 3);
.say for @$x;
输出:
1
2
3
大部分运营商都可以直接搜索到。特别是这两种情况,不是单独的运算符,而是组合使用符号的情况。那些有点难收集方便,但文档每天都在改进。
@$foo
是 @($foo)
的缩写,其中 $foo
是一个项目变量, @(...)
语法只是调用.list
method on its argument. Both the method and the syntactic form are sometimes called the "list/array contextualizer".
它的一个用途是当您想要遍历存储在项目容器中的数组时。项目容器被内置函数视为单个项目,例如 for
循环,而在其上调用 .list
returns 没有周围项目容器的普通数组(即“强制值在列表上下文中解释"):
my $foo = [1, 2, 3];
say $foo.perl; # $[1, 2, 3]
say $foo.list.perl; # [1, 2, 3]
say @$foo.perl; # [1, 2, 3]
for $foo { ... } # One iteration
for $foo.list { ... } # Three iterations
for @$foo { ... } # Three iterations (identical to the previous line)
:!foo
是 :foo(False)
的缩写,即 named argument 的值为 False
:
sub do-something (:$verbose = True) { say $verbose; }
do-something; # True
do-something :verbose; # True
do-something :!verbose; # False
当写在术语位置但不作为参数列表的参数时,它构造一个 Pair 对象:
say (:!verbose); # verbose => False