我可以一次绑定多个变量吗?

下面这行声明了一个变量并将其绑定到右侧的数字。

my $a := 42;

效果是这$a不是 a Scalar,而是 an Int,正如可以看到的

say $a.VAR.^name;

我的问题是,我可以在一个声明中绑定多个变量吗?这不起作用:

my ($a, $b) := 17, 42;

因为,正如使用 所见say $a.VAR.^name,现在$a$b都是Scalars。(我想我明白为什么会发生这种情况,问题是是否有一种不同的方法可以在不创建s的情况下将$a和绑定$b到给定IntScalars。)

此外,在这种情况下使用:=和之间有什么区别=吗?

回答

您可以使用无符号容器:

my (a, b) := 17,42;
say a.VAR.^name; # Int

无符号变量没有关联的容器

  • Interestingly, if I use `my (a, b) = 17, 42` (assignment, not binding), then `say a.VAR.^name` prints `Scalar`. What happens there?

以上是我可以一次绑定多个变量吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>