我正在尝试查看在接收器上下文中抛出地图的方法。在这段代码中
class Sunk {
has $.titanic;
method sink {
say "Sinking $!titanic";
}
}
Sunk.new( :titanic($_) ) for 1..3;
(1..3).map: { Sunk.new( :titanic($_) ) };
The for
循环有效地吸收了所有被创建的、map
才不是。知道为什么吗?
这个测试在烘焙中:https://github.com/perl6/roast/blob/b9bfe1844db25f65a4aeb351a0107f83689cb5c2/S04-statements/sink.t#L27-L32 https://github.com/perl6/roast/blob/b9bfe1844db25f65a4aeb351a0107f83689cb5c2/S04-statements/sink.t#L27-L32应该作为一个测试。地图实际上是在水槽环境中,但我不明白它是如何“以沉没方式运行”的。它只是运行。
在你的例子中,map
返回一个Seq
with Sunk
里面的物体。整个Seq
被沉没,这有效地调用了Seq.iterator.sink-all
,这确实not下沉其所有元素:它只是拉动Seq
通过调用清空pull-one
until IterationEnd
被返回。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)