假设我有以下代码:
case class Foo(x: SortedSet[String]) {
def bar: Set[String] = x
}
(这是我实际代码的简化。)如果我尝试运行它,我会收到以下错误:
error: type mismatch;
found : scala.collection.SortedSet[String]
required: Set[String]
def bar: Set[String] = x
为什么会出现此错误?不是SortedSet[String]
Set[String]
的子商品吗?
答案 0 :(得分:6)
Set is immutable.Set。
scala> import scala.collection.immutable.SortedSet
import scala.collection.immutable.SortedSet
scala> :paste
// Entering paste mode (ctrl-D to finish)
case class Foo(x: SortedSet[String]) {
def bar: Set[String] = x
}
// Exiting paste mode, now interpreting.
defined class Foo