我可以一次绑定多个变量吗?
下面这行声明了一个变量并将其绑定到右侧的数字。
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到给定Int的Scalars。)
此外,在这种情况下使用:=和之间有什么区别=吗?
回答
您可以使用无符号容器:
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?