does PositionalBindFailover
此角色实现了一系列用于转换序列和访问其元素的方法。这些方法应该适用于所有序列:串行 Seq
、有序并行 HyperSeq
和无序并行 RaceSeq
。
这些方法的共同点是,如果序列尚未 缓存,它们都会访问底层迭代器。因此,如果对已消耗的 Seq
调用它们,它们将抛出类型为 X::Seq::Consumed
的错误。
方法§
方法 Str§
multi method Str(::?CLASS:)
方法 Stringy§
multi method Stringy(::?CLASS:)
在 缓存 的序列上调用 .Stringy
。
方法 Numeric§
method Numeric(::?CLASS:)
返回 缓存 的序列中的元素数量。
方法 AT-POS§
multi method AT-POS(::?CLASS: Int )multi method AT-POS(::?CLASS: int )
返回 缓存 的序列中位置 $idx
处的元素。
方法 EXISTS-POS§
multi method EXISTS-POS(::?CLASS: Int )multi method EXISTS-POS(::?CLASS: int )
返回一个 Bool
,指示 缓存 的序列中位置 $idx
处是否存在元素。
方法 eager§
method eager(::?CLASS: --> List)
返回一个基于调用者序列的急切求值 List
,并将其标记为已消耗。如果对已消耗的 Seq
调用,则抛出类型为 X::Seq::Consumed
的错误。
my = lazy 1..5;say .is-lazy; # OUTPUT: «True»say .eager; # OUTPUT: «(1 2 3 4 5)»say .eager;CATCH# OUTPUT: «Throws exception if already consumed»
方法 fmt§
method fmt( = '%s', = ' ' --> Str)
方法 gist§
multi method gist(::?CLASS:)