用法 一
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
相关用法
- Scala generic.IsIterable用法及代码示例
- Scala Tabulate.sliding用法及代码示例
- Scala ArrayBuffer.inits用法及代码示例
- Scala long.BitwiseOr用法及代码示例
- Scala StringBuilder.partitionMap用法及代码示例
- Scala List distinct()用法及代码示例
- Scala DefaultMap.sizeIs用法及代码示例
- Scala StrictOptimizedIterableOps.sliding用法及代码示例
- Scala Searching.SearchResult用法及代码示例
- Scala ::.collectFirst用法及代码示例
- Scala TreeSet diff()用法及代码示例
- Scala Char getClass()用法及代码示例
- Scala int.Min用法及代码示例
- Scala IntMap.groupMap用法及代码示例
- Scala Map3.mkString用法及代码示例
- Scala IterableOnceOps.flatMap用法及代码示例
- Scala IndexedSeqOps.lengthIs用法及代码示例
- Scala Map3.addString用法及代码示例
- Scala WrappedString.scanRight用法及代码示例
- Scala String compareToIgnoreCase()用法及代码示例
- Scala List drop()用法及代码示例
- Scala ofDouble.inits用法及代码示例
- Scala SortedSet.tails用法及代码示例
- Scala String replaceFirst()用法及代码示例
- Scala StringView.groupMap用法及代码示例
注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 generic.IsIterableOnce。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。