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,
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