如何实现Scala等效于Java Iterable<T>和C#IEnumerable<T>?基本上,我希望我的收藏是可映射,过滤等应集合类扩展什么特点以及是否有简便的方法(类似yield return与yield break在C#)来创建枚举?
dhg*_*dhg 14
实现Iterable特征.所需要的只是iterator方法.所有其他方法(map,filter等)都是免费的.
class MyIterable[T](xs: Vector[T]) extends Iterable[T] {
override def iterator = xs.iterator
}
val a = new MyIterable(Vector(1,2,3))
a.map(_+1) // res0: Iterable[Int] = List(2, 3, 4)
a.filter(_%2==1) // res1: Iterable[Int] = List(1, 3)
Run Code Online (Sandbox Code Playgroud)