Iterating over iterator.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package foo
|
||||
|
||||
import java.util.*
|
||||
import java.lang.*
|
||||
import jet.Iterator
|
||||
|
||||
public inline fun <T, C: Collection<in T>> Iterator<T>.takeWhileTo(result: C, predicate: (T) -> Boolean) : C {
|
||||
for (element in this) if (predicate(element)) result.add(element) else break
|
||||
return result
|
||||
}
|
||||
|
||||
fun box(): Any? {
|
||||
val c = ArrayList<Int>()
|
||||
for (i in 0..5) {
|
||||
c.add(i)
|
||||
}
|
||||
|
||||
val d = ArrayList<Int>()
|
||||
|
||||
c.iterator().takeWhileTo(d, {i -> i < 4 })
|
||||
return d.size() == 4
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package foo
|
||||
|
||||
|
||||
import java.util.*
|
||||
|
||||
fun box(): Boolean {
|
||||
val c = ArrayList<Int>()
|
||||
for (i in 0..5) {
|
||||
c.add(i)
|
||||
}
|
||||
|
||||
var s = ""
|
||||
for (i in c.iterator()) {
|
||||
s = s + i.toString()
|
||||
}
|
||||
|
||||
return s == "012345"
|
||||
}
|
||||
Reference in New Issue
Block a user