के साथ स्कैला न्यूमेरिक init मेरे पास MathUtil नामक एक उपयोगिता वर्ग है।स्थिर 0
और ऐसा लगता है।
abstract class MathUtil(T:Numeric){
def nextNumber(value:T)
def result():T
}
मैं इसे इस तरह से
class SumUtil[T:Numeric] extends MathUtil[T]{
private var sum:T = 0
override def nextNumber(value:T){
sum = sum + value
}
override def result():T = sum
}
उपवर्ग मैं
private var sum:T = 0
अब बयान के साथ एक समस्या है, मैं 0 पर योग करने के लिए मैं किसी भी सांख्यिक लगता होगा प्रारंभ करने के लिए है की सुविधा देता है 0 का प्रतिनिधित्व करने का एक तरीका है। मैं स्कैला के लिए बहुत नया हूं। मैं इस मुद्दे को कैसे हल करूं?
class SumUtil[T: Numeric] extends MathUtil[T] {
private var sum: T = implicitly[Numeric[T]].zero
override def nextNumber(value: T) {
sum = implicitly[Numeric[T]].plus(sum, value)
}
override def result(): T = sum
}
ध्यान दें, जिस स्थिति में आप +
उपयोग कर सकते हैं कि आप भी, plus
विधि के लिए उदाहरण की जरूरत है जब तक आप Numeric.Implicits._
आयात:
उत्तर के लिए सभी को धन्यवाद। मेरे पास एक फॉलोअप प्रश्न है। आइए कहें कि मेरे पास एक कक्षा है जिसमें मैथ्यूटिल के प्रकार के ओवरराइड करने योग्य सदस्य हैं। – questionersam