मैं पत्र में 9 1 से संख्या मुद्रित करने के लिए निम्न कोड हैस्केला रेंज रिटर्न लांग बजाय इंट
class IntToNumber(num:Int) {
val digits = Map("1" -> "one", "2" -> "two", "3" -> "three", "4" -> "four", "5" -> "five", "6" -> "six", "7" -> "seven", "8" -> "eight", "9" -> "nine")
def inLetters():String = {
digits.getOrElse(num.toString,"")
}
}
implicit def intWrapper(num:Int) = new IntToNumber(num)
(1 until 10).foreach(n => println(n.inLetters))
मुझे इस कोड को चलाने मैं विधि कह कोई त्रुटि मिलती लांग
लिए उपलब्ध नहीं हैScript.scala:9: error: value inLetters is not a member of Long
(1 until 10).foreach(n => println(n.inLetters))
^
one error found
को
(1 until 10).foreach(n => println(n.toInt.inLetters))
वर्क्स ठीक अंतिम पंक्ति बदलने ..
किसी की मदद कर सकते हैं मुझे समझने क्यों कि (1 10 तक) लौटने लंबी और नहीं int लेकर है?
परेशान। '(1 10 तक): IndexedSeq [इंट]' कहते अभिव्यक्ति टाइप 'NumericRange.Exclusive [लांग]' है और इसलिए जोड़ना अमान्य है। '(10 तक 1): इंडेक्सडैक [लांग] 'काम करता है। – missingfaktor
एक बग की तरह लगता है। निष्पादन '(1 तक 2) foreach (x => println (x.getClass)) 'लगातार परिणाम नहीं देता है। कभी-कभी यह 'int' प्रिंट करता है, कुछ अन्य बार यह 'लंबा' प्रिंट करता है। – missingfaktor
ओह, ऐसा लगता है कि @ziggystar रहस्य हल किया। :-) – missingfaktor