मुझे निम्न समस्या है: मेरे पास एक ऐसा फ़ंक्शन है जो सूची [डबल] पैरामीटर के रूप में लेता है, सूची के तत्वों पर कुछ अंकगणितीय परिचालन करता है और परिणाम लौटाता है । मैं समारोह को सूची [Int] स्वीकार करने के लिए भी चाहता हूं।विभिन्न संख्यात्मक प्रकारों की सूची स्वीकार करने वाले कार्यों को परिभाषित करने के लिए स्कैला तरीका
def f(l: List[Double]) = {
var s = 0.0
for (i <- l)
s += i
s
}
val l1 = List(1.0, 2.0, 3.0)
val l2 = List(1, 2, 3)
println(f(l1))
println(f(l2))
पाठ्यक्रम दूसरा println च के बाद से विफल रहता है के
सूची [डबल] और सूची नहीं [इंट] की आवश्यकता है: यहाँ एक उदाहरण है।
फ़ंक्शन के भीतर 0 (या अन्य स्थिरांक) का उपयोग करने की आवश्यकता को प्रमाणित करने के लिए एफ फ़ंक्शन के भीतर योग की गैर स्कैला शैली फॉर्मूलेशन को भी ध्यान दें (यदि मैं इंट वैल्यू को जोड़ता हूं तो मुझे 0 में प्रवेश करना होगा नहीं 0.0।
सबसे अच्छा तरीका है (कम कोड) डबल और इंट दोनों पर समारोह काम पाने के लिए?
(मैंने देखा है कुछ 2.8 के बारे में संख्यात्मक विशेषता मैं इसे कैसे उपयोग करने के लिए इतना यकीन नहीं कर रहा है कौन सा ...)
मदद के लिएधन्यवाद सब लोग।
'डीईएफ़ योग [टी: संख्यात्मक] (एल: सूची [टी]) = l.sum' करेंगे। –
@ थॉमस, हां बिल्कुल;) – Patrick