Basically a fast, efficient .flatten or mkString for nested iterators
For some reason, the default way of concatenation e.g.
val middle = first ++ lastChildIter ++ sep ++ remaining
Was throwing weird NullPointerExceptions I couldn't figure out =(
Also, ++ didn't seem to be sufficiently lazy, so it was forcing
things earlier than it really needed to. It isn't documented anywhere
how lazy it's meant to be, whereas ConcatIterator here is obviously
lazy and won't even evaluate each iterator until you ask it to
Linear Supertypes
Iterator[T], TraversableOnce[T], GenTraversableOnce[T], AnyRef, Any
Basically a fast, efficient
.flatten
ormkString
for nested iteratorsFor some reason, the default way of concatenation e.g.
val middle = first ++ lastChildIter ++ sep ++ remaining
Was throwing weird NullPointerExceptions I couldn't figure out =(
Also, ++ didn't seem to be sufficiently lazy, so it was forcing things earlier than it really needed to. It isn't documented anywhere how lazy it's meant to be, whereas
ConcatIterator
here is obviously lazy and won't even evaluate each iterator until you ask it to