當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。