यदि मेरे पास 5 * 5.0
जैसे कोड हैं तो परिणाम सबसे सटीक प्रकार, Double
में परिवर्तित हो जाता है।वैल्यू [टी: न्यूमेरिक] "अनबॉक्स किए गए" समकक्षों की तरह अधिक "लचीला" का उपयोग करके कोड कैसे बनाएं?
लेकिन इस तरह
case class Value[T : Numeric](value: T) {
type This = Value[T]
def +(m: This) = Value[T](implicitly[Numeric[T]].plus(value, m.value))
...
}
implicit def numToValue[T : Numeric](v: T) = Value[T](v)
कोड के साथ काम नहीं लगता है वहाँ someIntValue + double
काम तरह बातें करने के लिए एक रास्ता है, जहां someIntValue
Value[Int]
और double
Double
है?
पीएस: बहुत कम से कम सही शीर्षक के लिए खेद है। मैं बेहतर शब्दों के लिए सुझाव के लिए आभारी हूँ ...
http://stackoverflow.com/questions/3088979/how-to-set-up-implicit-conversion-to-allow-arithmetic-between-numeric-types भी उपयोगी हो सकता है। –