scala.collection.generic.IsIterableOnce
See theIsIterableOnce companion object
Type class witnessing that a collection representation type Repr has elements of type A and has a conversion to IterableOnce[A].
This type enables simple enrichment of IterableOnces with extension methods which can make full use of the mechanics of the Scala collections framework in their implementation.
Example usage,
import scala.collection.BuildFrom
extension [Repr, I <: IsIterableOnce[Repr]](coll: Repr)(using it: I) {
final def filterMap[B, That](f: it.A => Option[B])(using bf: BuildFrom[Repr, B, That]): That = {
val b = bf.newBuilder(coll)
for(e <- it(coll).iterator) f(e).foreach(b += _)
b.result()
}
}
List(1, 2, 3, 4, 5).filterMap(i => if(i % 2 == 0) Some(i) else None)
// == List(2, 4)
Attributes
- Companion
- object
- Source
- IsIterableOnce.scala
- Graph
-
- Supertypes
- Known subtypes
Members list
In this article