【发布时间】:2019-05-06 17:29:30
【问题描述】:
await 返回的值的顺序是否总是相对于输入顺序?
my @aoa = (
qw<1 a>, qw<2 b>, qw<3 c>,
qw<4 d>, qw<5 e>, qw<6 f>,
qw<7 g>, qw<8 h>, qw<9 i>,
);
my @portions = ( ( 0, 2 ), ( 3, 5 ), ( 6, 8 ) );
my @promise;
for @portions -> $range {
@promise.push: start {
do for $range[0] .. $range[1] -> $row {
do for ^@aoa.[$row] -> $col {
my $str = @aoa[$row][$col] // '';
$row, $col, $str;
}
}
};
}
for await @promise -> @portion {
for @portion -> @p_rows {
say @p_rows.join( ', ' );
}
}
【问题讨论】:
-
我猜答案是否定的,但您想确切知道什么?或者你想做什么?
-
如果我想填写
AoA并且它不能保持订单,我必须写@AoA[$_[0]][$_[1]] = $_[2]以保持订单,否则我有更多选择。 -
但是你为什么要这样做?如果你想在保持顺序的同时加快分配速度,可以使用
hyper -
我会试试的。 -