我可以一次绑定多个变量吗?
Can I bind multiple variables at once?
下面一行声明了一个变量,绑定它到右边的数字。
my $a := 42;
效果是$a
不是Scalar
,而是Int
,可以看出
say $a.VAR.^name;
我的问题是,我可以在一个声明中绑定多个变量吗?这不起作用:
my ($a, $b) := 17, 42;
因为,正如使用 say $a.VAR.^name
所见,$a
和 $b
现在都是 Scalar
。 (我想我明白为什么会发生这种情况,问题是是否有一种不同的方法可以将 $a
和 $b
绑定到给定的 Int
而不创建 Scalar
。 )
此外,在这种情况下使用:=
和=
有什么区别吗?
您可以使用无符号容器:
my (\a, \b) := 17,42;
say a.VAR.^name; # Int
下面一行声明了一个变量,绑定它到右边的数字。
my $a := 42;
效果是$a
不是Scalar
,而是Int
,可以看出
say $a.VAR.^name;
我的问题是,我可以在一个声明中绑定多个变量吗?这不起作用:
my ($a, $b) := 17, 42;
因为,正如使用 say $a.VAR.^name
所见,$a
和 $b
现在都是 Scalar
。 (我想我明白为什么会发生这种情况,问题是是否有一种不同的方法可以将 $a
和 $b
绑定到给定的 Int
而不创建 Scalar
。 )
此外,在这种情况下使用:=
和=
有什么区别吗?
您可以使用无符号容器:
my (\a, \b) := 17,42;
say a.VAR.^name; # Int