我正在阅读Scala脚本,发现大量使用了Iterable[string]
。例如:
def wordFeatures(words: Iterable[String]): Iterable[Vector] = words.map(w => Try(word2vecModel.transform(w))).filter(_.isSuccess).map(_.get)
我是Scala的新手,我只会直接使用List[String]
,Array[String]
,Vector[String]
集合而不是Iterable[String]
,Iterable[Int]
。
我想也许使用iterable会减少内存使用率和OOM的可能性,但不确定。
所以,问题是:传递可迭代对象而不是集合作为Scala中函数的参数有什么好处?