如何在Scala中选择要返回的集合类型?

时间:2015-02-15 12:09:28

标签: scala

如果是SetList,选择似乎更容易,但我该如何处理Java的CollectionIterable等效?我会去Seq吗? TraversableGenTraversableOnce

2 个答案:

答案 0 :(得分:4)

您需要根据自己的需要做出决定。例如:根据Scala Documentation Seq 的定义是

  

序列是类Iterable的可迭代集合的特例。与iterables不同,序列始终具有已定义的元素顺序。序列提供了一种适用于索引的方法。

因此,如果您希望订购受益,或者您希望按索引检索元素,则可以使用Seq

再次根据Scala Documentation,如果您主要对集合的迭代感兴趣可遍历就足够了

请注意,对于像函数返回类型这样的函数签名,有一般的好习惯,使用更通用(抽象)的数据类型来防止对函数调用者造成不必要的性能损失。

答案 1 :(得分:3)

通常情况下,它取决于来电者的需求。 Traversable是相当高的级别(你只获得foreach)但它可能就足够了。如果您需要定义的元素顺序,将使用Seq。 GenTraversableOnce对我来说可能有点抽象,也可能对你的编码人员而言。