编辑:根据原始答案改写了这个问题
该scala.collection.immutable.Set
班是不是在它的类型参数不变性。为什么是这样?
import scala.collection.immutable._
def foo(s: Set[CharSequence]): Unit = {
println(s)
}
def bar(): Unit = {
val s: Set[String] = Set("Hello", "World");
foo(s); //DOES NOT COMPILE, regardless of whether type is declared
//explicitly in the val s declaration
}
还要注意,它也可以
—
LP_ 2014年
foo(Set("Hello", "World"))
在2.10 上编译,因为Scala似乎能够推断出Set的正确类型。但是,它不适用于隐式转换(stackoverflow.com/questions/23274033/…)。
foo(s.toSet[CharSequence])
编译还不错。该toSet
方法为O(1)-仅包装asInstanceOf
。