2011-08-12 10 views
5

मेरे कोड के टुकड़े मैं निम्नलिखित संकलन त्रुटि मिलती हैमैं स्कैला हैशमैप्स और विकल्पों का सही तरीके से उपयोग कैसे करूं?

error: type mismatch; 
found : Any 
required: Long 
val time: Long = crossingMap.get(crossingData).getOrElse(0) 
+6

सुझाव होगा: 'crossingMap के प्रकार .get (crossingData) 'विकल्प है [विकल्प [लंबा]]'। –

+0

यदि आप 'स्ट्रिंग' को 'कोई नहीं' पर मैप करते हैं, तो आप पहले स्थान पर मैपिंग भी नहीं कर सकते हैं, है ना? यही कारण है कि (जैसा कि किप्टन बैरोस सुझाव देता है) आप शायद 'हैश मैप [स्ट्रिंग, लांग]' चाहते हैं। – Blaisorblade

उत्तर

4

आप crossingMap चाहते हो सकता है String -> Long जोड़े को रोकने के लिए नीचे दिए गए

import scala.collection.mutable.HashMap 

val crossingMap = new HashMap[String, Option[Long]] 
val crossingData: String = ... 
val time: Long = crossingMap.get(crossingData).getOrElse(0) 

हैं। तो फिर तुम निम्नलिखित कर सकते हैं,

val crossingMap = new HashMap[String, Long] 
val crossingData: String = "" 
val time: Long = crossingMap.getOrElse(crossingData, 0) 

तुम सच प्रकार Option[Long] के लिए crossingMap मूल्यों चाहते हैं, तो आप की तरह कुछ करने के लिए,

val crossingMap = new HashMap[String, Option[Long]] 
val crossingData: String = "" 
val time: Long = crossingMap.getOrElse(crossingData, None).getOrElse(0) 
संबंधित मुद्दे

 संबंधित मुद्दे