您好我正在尝试在Perl 6
https://docs.perl6.org/language/operators#Hyper_operators中使用赋值 super 运算符
my (@one, @two) «=» (<1 2 3>,<4 5 6>);
say @one;
say @two;
# Prints nothing (empty array)
# Expected behaviour:
@one=<1 2 3>;
@two=<4 5 6>;
say @one;
say @two;
# Prints [1 2 3] and [4 5 6]
如何使分配 super 运算符(operator)正确运行?谢谢。
最佳答案
你近了。在我们发现的文档中仅一点点
zip元操作符(与Z不同)将给定的中缀运算符应用于从其参数向左,向右取对的对。
所以
my (@one, @two) Z= <1 2 3>, <4 5 6>;
这是在当前开发人员版本上运行的基准。它将上面的“魔术”变量与两个顺序分配进行比较。
use v6;
use Benchmark;
my %results = timethese(100000, {
"magic" => sub { my (@one, @two) Z= <1 2 3>, <4 5 6> },
"plain" => sub { my @one = <1 2 3>; my @two = <4 5 6> },
});
say ~%results;
# magic 1569668462 1569668464 2 0.00002
# plain 1569668464 1569668464 0 0
关于raku - 嵌套列表的Perl 6赋值 super 运算符无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58139971/