EDIT : मूल उत्तर पर आधारित इस प्रश्न को फिर से लिखा गया
scala.collection.immutable.Set
वर्ग अपनी प्रकार पैरामीटर में covariant नहीं है। ऐसा क्यों है?
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(Set("Hello", "World"))
2.10 पर भी संकलन किया गया है, क्योंकि स्काला सही प्रकार के सेट का अनुमान लगाने में सक्षम है। हालांकि यह अंतर्निहित रूपांतरणों के साथ काम नहीं करता है ( stackoverflow.com/questions/23274033/… )।
foo(s.toSet[CharSequence])
ठीक संकलन करता है।toSet
यह सिर्फ लपेटता - विधि हे (1) हैasInstanceOf
।