sma*_*007 33 scala scala-collections
还有其他问题,例如Scala:Scala集合中的Traversable和Iterable特性之间有什么区别?和我怎么会得到两个列表的平方在斯卡拉的总和?这部分地回答了这个问题.我觉得在一个地方覆盖所有这些问题是有道理的.
Jen*_*der 33
Traversable是集合层次结构的顶层.它的主要方法是'foreach',因此它允许为集合的每个元素做一些事情.
一个可迭代可以创建一个Iterator,在此基础上的foreach可以实现.这定义了元素的某些顺序,尽管每个迭代器的顺序可能会改变.
Seq(uence)是一个Iterable,元素的顺序是固定的.因此,谈论元素的索引是有意义的.
流是懒惰的序列.即,在访问流之前可能无法计算流的元素.这使得可以使用无限序列,如所有整数的序列.
视图是集合的非严格版本.像过滤器和视图上的映射方法只在访问相应元素时执行传递的函数.因此,巨大集合上的映射会立即返回,因为它只是在原始集合周围创建一个包装器.只有当一个人访问一个元素时,才会实际执行映射(对于该元素).请注意,View不是一个类,但是有许多XxxView类用于各种集合.