Discussion 解説
This iterator calls next()
on its base iterator; if this call returns nil
, next()
returns nil
. Otherwise, next()
calls the transforming closure on the received element, returning it if the transform returns a non-nil
value. If the transform returns nil
, this method continues to wait for further elements until it gets one that transforms to a non-nil
value. If calling the closure throws an error, the sequence ends and next()
rethrows the error.
このイテレータは、next()
をそれの基底イテレータ上で呼び出します;この呼び出しがnil
を返すならば、next()
はnil
を返します。そうでなければ、next()
は変換クロージャをその受け取った要素上で呼び出して、その変換が非nil
値を返すならばそれを返します。変換がnil
を返すならば、このメソッドはさらに先の要素を待ち続けます、それが非nil
値へと変換するものを取得するまで。クロージャを呼び出すことがエラーをスローするならば、シーケンスは終了します、そしてnext()
はそのエラーを再スローします。