raku - Perl 6 中嵌套列表的赋值

标签 raku

我想,结果应该是1, 2, 3 .

> my ($a, $b, $c)
> (($a, $b), $c) = ((1, 2), 3)
(((1 2) 3) (Any))
> $a, $b, $c
((1 2) 3 (Any))

这里有什么问题?

最佳答案

没有错(也就是说,P6 中的普通赋值被设计为按照它所做的那样做)但猜测你希望使两侧的结构相同会导致 $a获取 1 , $b获取 2$c获取 3 .

为此,您需要“绑定(bind)分配”(也就是“绑定(bind)”),而不是普通的分配:

my ($a, $b, $c);
:(($a, $b), $c) := ((1, 2), 3);

注意左侧列表之前的冒号,使其成为签名文字,以及 = 之前的冒号,使其成为绑定(bind)操作。

关于raku - Perl 6 中嵌套列表的赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50221466/

相关文章:

enums - 枚举如何增强?

raku - 如何在perl6中过滤自己的输出?

raku - 如何将数组插入到数组数组中?

raku - 通过 Comma IDE 使用时间线可视化时出现 "Could not get Timeline data"

debugging - 为什么我不能命名无符号变量 v+digit?

raku - 终端 ANSI 颜色不适用于 Inline::Perl5 (Data::Printer)

sequence - 关于Raku中数组生成序列的问题

whitespace - Perl 6 中哪些空间很重要?

windows - 我怎样才能让 Perl 6 在 Windows 上运行?

raku - 使用 Range 变量作为下标获取位置切片