在scala中,我发现了以下示例:
val set = Set(4, 6, 7, 8, 9, 13, 14)
val result = set.toIterable
Run Code Online (Sandbox Code Playgroud)
具有以下说明:
toIterable会将任何值转换Traversable为。Iterable.这是所有Scala集合的基本特征,这些集合定义了迭代器方法以迭代集合的元素
但是Set已经是Iterable,那么此方法的意义何在?如果不是这种情况,您能给我指个吗?
在Scala 2.13中,不再有Traversable:
更简单的类型层次结构
没有更多的
Traversable和TraversableOnce。他们仍然只是作为过时的别名Iterable和IterableOnce。
调用toIterable上Set是多余的,因为它只会返回此相同的集合:
此收藏作为一个
Iterable[A]。如果已经是集合,则不会建立新集合Iterable[A]。
toIterable有影响的例子是
"Hello".toIterable
Array(1).toIterable
Run Code Online (Sandbox Code Playgroud)
隐式转换为
wrapString("Hello").toIterable
wrapIntArray(Array(1)).toIterable
Run Code Online (Sandbox Code Playgroud)
并将这些类似Java的类型放入Scala集合中。