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

Nik*_*nes 10 variable-binding raku

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

my $a := 42;
Run Code Online (Sandbox Code Playgroud)

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

say $a.VAR.^name;
Run Code Online (Sandbox Code Playgroud)

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

my ($a, $b) := 17, 42;
Run Code Online (Sandbox Code Playgroud)

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

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

jjm*_*elo 9

您可以使用无符号容器:

my (\a, \b) := 17,42;
say a.VAR.^name; # Int
Run Code Online (Sandbox Code Playgroud)

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

  • 有趣的是,如果我使用“my (\a, \b) = 17, 42”(赋值,而不是绑定),则“say a.VAR.^name”会打印“Scalar”。那里会发生什么? (2认同)