2.7.5.final पर जोड़ने, मैं इतनास्काला: लंबे के उपयोग के बावजूद अतिप्रवाह जब
def sum(xs: Iterable[Int]): Long = {
var sum = 0L
xs.foreach((x) => sum = sum + x)
sum
}
println(sum(List(1, Integer.MAX_VALUE - 1)))
println(sum(Integer.MAX_VALUE - 1 to Integer.MAX_VALUE))
println(0L + Integer.MAX_VALUE - 1 + Integer.MAX_VALUE)
जब मैं चलाने के लिए, मैं
2147483647
0
4294967293
मिल की तरह Ints की एक Iterable सूची में जोड़ने का प्रयास कर रहा हूँ
और, आप कह सकते हैं "कम करें Left (_ + _)" का उपयोग करें, लेकिन ऐसा लगता है कि सूची में तत्वों के रूप में केवल उसी प्रकार को वापस करने में सक्षम हो सकता है ... लेकिन मैं लंबे समय तक जमा करना चाहता हूं, इसलिए मैं ' टी ओवरफ्लो मुद्दे है।
अद्यतन 2009-10-28
इस रेंज में एक बग, के रूप में Eastsun से बताया है। यह ticket 2535
हम्म, println (राशि (सूची (Integer.MAX_VALUE - 1, Integer.MAX_VALUE))) पैदावार 4294967293. यह 'को' विधि मुझे लगता है के साथ क्या करने के लिए कुछ नहीं है। दिलचस्प सवाल! –