在 Any 中§

有关方法 iterator,请参阅主要文档 in context

multi method iterator(Any:)

将对象转换为列表后,将其作为迭代器返回。这是从 for 语句调用的函数。

.say for 3# OUTPUT: «3␤»

大多数子类重新定义此方法以进行优化,因此实际上不迭代的类型实际上使用此实现。

在 Junction 中§

有关方法 iterator,请参阅主要文档 in context

multi method iterator(Junction:D:)

返回已转换为 ListJunction 的迭代器。

在 HyperSeq 中§

有关方法 iterator,请参阅主要文档 in context

method iterator(HyperSeq:D: --> Iterator:D)

返回底层迭代器。

在角色 PositionalBindFailover 中§

有关方法 iterator,请参阅主要文档 in context

method iterator(PositionalBindFailover:D:{ ... }

此方法存根确保实现角色 PositionalBindFailover 的类提供 iterator 方法。

在 Mu 中§

有关方法 iterator,请参阅主要文档 in context

method iterator(--> Iterator)

通过应用其 .list 方法将调用者强制转换为 list,并对其使用 iterator

my $it = Mu.iterator;
say $it.pull-one# OUTPUT: «(Mu)␤» 
say $it.pull-one# OUTPUT: «IterationEnd␤»

在角色 Iterable 中§

有关方法 iterator,请参阅主要文档 in context

method iterator(--> Iterator:D)

方法存根,确保执行 Iterable 角色的所有类都有一个方法 iterator

它应该返回一个 Iterator

say (1..10).iterator;

在 RaceSeq 中§

有关方法 iterator,请参阅主要文档 in context

method iterator(RaceSeq:D: --> Iterator:D)

返回底层迭代器。

在 Seq 中§

有关方法 iterator,请参阅主要文档 in context

method iterator(Seq:D:)

如果 Seq 未缓存,则返回底层迭代器并将调用者标记为已使用。如果在已使用的序列上调用,则抛出类型为 X::Seq::Consumed 的错误。

否则,返回缓存列表的迭代器。