PredictiveIterator
是 Iterator
的一种特殊类型,它可以知道它将(仍然)生成多少个值,无需实际生成这些值。
Iterator
角色的 API 的主要新增内容是 count-only
方法,该方法应返回 Iterator 仍然能够生成的值的数量。
另一个新增内容是 bool-only
方法,它应返回一个 Bool
,指示 Iterator 是否仍然能够生成值(即尚未耗尽)。默认情况下,这是对 count-only
方法调用结果的布尔化。
方法§
方法 count-only§
method count-only(--> Int)
预计它将返回迭代器仍然可以生成的值的数量,无需实际生成它们。返回的数字必须针对已提取的项目进行调整,以便可以在部分消耗的 Iterator
上调用该方法。
它将用于仅需要迭代器值数量的情况,例如,当调用 .elems
方法时。
重要提示:预计实现此方法的 Iterator
可以返回该数字,无需生成任何值。换句话说,预计类的用户在调用此方法后仍能够 pull-one,并最终接收与该方法的返回值指示的值一样多的值。
方法 bool-only§
默认为调用 count-only
方法的结果的布尔化。如果有一种更快的办法来找出迭代器是否能够生成任何值,则应该实现它。
method bool-only(--> Bool)