beholder
09/24/2018, 3:17 PMilya.gorbunov
09/24/2018, 3:30 PMbeholder
09/24/2018, 3:45 PMbeholder
09/24/2018, 3:48 PMbeholder
09/24/2018, 3:57 PMfun <T : Any> possiblySequence(element: T?): Sequence<T> =
if (element == null) emptySequence() else sequenceOf(element)
но экономнейbeholder
09/24/2018, 4:02 PMinternal class SingletonSequence<T>(private val element: T) : Sequence<T> {
override fun iterator(): Iterator<T> = object : Iterator<T> {
private var hasNext = true
override fun hasNext(): Boolean = hasNext
override fun next(): T = if (hasNext) {
hasNext = false
element
} else {
throw NoSuchElementException()
}
}
}ilya.gorbunov
09/24/2018, 5:51 PMsequenceOfNotNull по аналогии с listOfNotNull.
Пока еще можно предложить listOfNotNull(...).asSequence(), или, если нужно сделать flatMap то:
someSequence.map { listOfNotNull(possiblyNullableTransform(it)) }.flatten()ilya.gorbunov
09/24/2018, 6:11 PMsomeSequence.mapNotNull { possiblyNullableTransform(it) }