List 状态的文档:
结果集合的类型由列表的静态类型引导。这有时可能会导致意想不到的结果。例如:
// lettersOf 将返回可能重复的字母的 Seq[Char],而不是 Set def lettersOf(words: Seq[String]) = words flatMap (word => word.toSet)
// lettersOf 将返回一个 Set[Char],而不是 Seq def lettersOf(words: Seq[String]) = words.toSet flatMap (word => word.toSeq)
我很难理解这一点。StringOps.toSet 返回一个字符集,因此第一个示例最终返回一个字符序列 - 很好。那讲得通。我不明白为什么在第二个示例中 Scala 构造了 Set 而不是 Seq。
“生成的集合由列表的静态类型引导”到底是什么意思?