को संकलित करते समय अजीब त्रुटि, जबकि मैं कुछ स्कैला कोड लिख रहा था, कोड को संकलित करने का प्रयास करते समय मुझे एक अजीब त्रुटि संदेश मिला। मैंने कोड को एक बहुत ही सरल तरीके से तोड़ दिया (जो किसी भी अर्थपूर्ण दृष्टिकोण से बिल्कुल समझ में नहीं आता है, लेकिन फिर भी त्रुटि दिखाता है)।लूप
scala> :paste
// Entering paste mode (ctrl-D to finish)
import scala.collection.mutable.ListBuffer
val map = scala.collection.mutable.Map[Int, ListBuffer[Int]]()
for (i <- 1 to 2) {
map.get(0) match {
case None => map += (1 -> ListBuffer[Int](1))
case Some(l: ListBuffer[Int]) => l += i
}
}
// Exiting paste mode, now interpreting.
<console>:12: error: type arguments [Any] do not conform to trait Cloneable's t
pe parameter bounds [+A <: AnyRef]
for (i <- 1 to 2) {
^
जब पाश के लिए के अंत में एक अतिरिक्त पंक्ति जोड़ने, कोड काम करता है:
scala> :paste
// Entering paste mode (ctrl-D to finish)
import scala.collection.mutable.ListBuffer
val map = scala.collection.mutable.Map[Int, ListBuffer[Int]]()
for (i <- 1 to 2) {
map.get(0) match {
case None => map += (1 -> ListBuffer[Int](1))
case Some(l: ListBuffer[Int]) => l += i
}
1 // <- With this line it works
}
// Exiting paste mode, now interpreting.
warning: there were 1 unchecked warnings; re-run with -unchecked for details
import scala.collection.mutable.ListBuffer
map: scala.collection.mutable.Map[Int,scala.collection.mutable.ListBuffer[Int]]
= Map(1 -> ListBuffer(1))
मुझे लगता है, यह मैच केस-कथन की वापसी मान के साथ कुछ है । लेकिन मैं इस त्रुटि संदेश के पीछे कारण और मैं क्या गलत कर रहा हूं, इसका पता लगाने के लिए पर्याप्त स्कैला-विशेषज्ञ नहीं हूं। मुझे उम्मीद है कि कोई और बुद्धिमान यहां मदद कर सकता है।
त्रुटि संदेश के पीछे क्या कारण है? मैच-केस-स्टेटमेंट में क्या गलत है?
अद्यतन: स्काला 2.9.2 के साथ
यह शायद एक बग है। 2.10 के साथ यह ठीक काम करता है। – sschaef