नहीं देता मैं स्काला के लिए नया हूँ, और मैं क्यों मैं कभी कभी एक प्रकार की त्रुटि जब Set.contains
स्काला Set.contains की उम्मीद प्रकार मेल नहीं खाता त्रुटि
को गलत तर्क की आपूर्ति नहीं मिलता है समझने के लिए संघर्ष कर रहा हूँ
scala> val baz = Map("one" -> 1, "two" -> 2)
baz: scala.collection.immutable.Map[java.lang.String,Int] = Map(one -> 1, two -> 2)
scala> baz.values.toSet.contains("asdf")
res3: Boolean = false
मैं एक प्रकार मेल नहीं खाता वहाँ क्यों नहीं मिला: यहाँ एक त्वरित उदाहरण आरईपीएल (2.9.1.final) का उपयोग कर रहा है?
scala> val bling = baz.values.toSet
bling: scala.collection.immutable.Set[Int] = Set(1, 2)
scala> bling.contains("asdf")
<console>:10: error: type mismatch;
found : java.lang.String("asdf")
required: Int
bling.contains("asdf")
^
बेवकूफ गलती, भाषा सूक्ष्मता, या संकलक बग:
अगर मैं एक और val
करने के लिए baz.values.toSet
असाइन करते हैं, और उस पर contains
कहते हैं, मैं प्रकार की जाँच मिलता है ?
लघु जवाब: भाषा सूक्ष्मता (subtyping और प्रकार निष्कर्ष) –