这个计划
my @bitfields;
for ^3 -> $i {
@bitfields[$i] = Bool.pick xx 3;
}
my @total = 0 xx 3;
for @bitfields -> @row {
@total Z+= @row;
}
say @total;
Run Code Online (Sandbox Code Playgroud)
说[0 0 0]
.如果我们在循环中添加一些东西,无论如何:
my @bitfields;
for ^3 -> $i {
@bitfields[$i] = Bool.pick xx 3;
}
my @total = 0 xx 3;
for @bitfields -> @row {
@total Z+= @row;
say "foo";
}
say @total;
Run Code Online (Sandbox Code Playgroud)
它会正常工作.显然,块的最后一个元素被抛入sink上下文,在这种情况下意味着它被简单地忽略; 这个陷阱与此有关.但是,上面的代码看起来非常好; 还有这个
{@total Z+= @^þ} for @bitfields;
Run Code Online (Sandbox Code Playgroud)
显然是有效的,虽然我没有看到真正的区别.还有其他想法吗?
perl6 ×1