Discussion 解説
This iterator calls next()
on its base iterator; if this call returns nil
, next()
returns nil. Otherwise, next()
evaluates the result with the predicate
closure. If the closure returns true
, next()
returns the received element; otherwise it awaits the next element from the base iterator. If calling the closure throws an error, the sequence ends and next()
rethrows the error.
このイテレータは、next()
をそれの基底イテレータ上で呼び出します;この呼び出しがnil
を返すならば、next()
はnilを返します。そうでなければ、next()
は結果をpredicate
クロージャで評価します。クロージャがtrue
を返すならば、next()
は受け取った要素を返します;そうでなければそれは次の要素を基底イテレータから待ちます。クロージャを呼び出すことがエラーをスローするならば、シーケンスは終了します、そしてnext()
はそのエラーを再スローします。