2015-06-14 13 views
6

नोट का उपयोग कर:त्रुटि जब स्विफ्ट में कम करने() 2,0

reduce is unavailable: call the 'reduce()' method on the sequence

मैं पहले से ही: यह भी स्विफ्ट 3,0

के लिए जब मैं reduce समारोह उपयोग करने का प्रयास लागू होता है, मैं कह रहा कोई त्रुटि मिलती है यह पता लगाया कि enumerate() फ़ंक्शन के साथ ऐसा कैसे करें लेकिन मैं इस समस्या को हल नहीं कर सकता।

var hashValue: Int { 
    return reduce(blocks, 0) { $0.hashValue^$1.hashValue } 
} 

उत्तर

15

आप इस तरह ही enumerate() साथ समस्या समाधान को ठीक: यहाँ त्रुटि लौटने कोड की पंक्ति है। स्विफ्ट 2 में, एक वैश्विक फ़ंक्शन के रूप में हटा दिया गया है और प्रोटोकॉल एक्सटेंशन के माध्यम से SequenceType प्रोटोकॉल के अनुरूप सभी ऑब्जेक्ट्स पर एक इंस्टेंस विधि के रूप में जोड़ा गया है। इस प्रकार उपयोग है।

var hashValue: Int { 
    return blocks.reduce(0) { $0.hashValue^$1.hashValue } 
} 
+0

आपको बहुत बहुत धन्यवाद! मुझे यकीन नहीं था कि कम से कम दो मानों के कारण()। –

संबंधित मुद्दे