РЕДАГУВАТИ : Переписати це питання на основі оригінальної відповіді
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
}
foo(s.toSet[CharSequence])
компілюється чудово.toSet
Метод є O (1) - це просто обгортанняasInstanceOf
.