当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Scala generic.IsIterableOnce用法及代码示例


用法 一

trait IsIterableOnce[Repr]

见证集合表示类型 Repr 具有类型为 A 的元素并转换为 IterableOnce[A] 的类型类.

这种类型可以使用扩展方法对IterableOnce 进行简单的丰富,这些扩展方法可以在其实现中充分利用 Scala 集合框架的机制。

示例用法,

class FilterMapImpl[Repr, I <: IsIterableOnce[Repr]](coll: Repr, it: I) {
  final def filterMap[B, That](f: it.A => Option[B])(implicit bf: BuildFrom[Repr, B, That]): That = {
    val b = bf.newBuilder(coll)
    for(e <- it(coll).iterator) f(e) foreach (b +=)
    b.result()
  }
}
implicit def filterMap[Repr](coll: Repr)(implicit it: IsIterableOnce[Repr]): FilterMapImpl[Repr, it.type] =
  new FilterMapImpl(coll, it)

List(1, 2, 3, 4, 5) filterMap (i => if(i % 2 == 0) Some(i) else None)
// == List(2, 4)

伴生:

object

源码:

IsIterableOnce.scala

用法 二

object IsIterableOnce extends IsIterableOnceLowPriority

伴生:

class

源码:

IsIterableOnce.scala

相关用法


注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 generic.IsIterableOnce。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。