func getIndex<T: Equatable>(valueToFind: T) -> Int? {...}
mutating func replaceObjectWithObject<T: Equatable>(obj1: T, obj2: T) {
if let index = self.getIndex(obj1) {
self.removeAtIndex(index)
self.insert(obj2, atIndex: index) // Error here: 'T' is not convertible to 'T'
}
}
मेरे पास यह फ़ंक्शन है जो तत्व को किसी अन्य तत्व के साथ प्रतिस्थापित करने का अनुमान है। लेकिन मैं Generics
से बहुत परिचित नहीं हूं और यह नहीं जानता कि यह क्यों काम नहीं कर रहा है। कृपया मदद करे।स्विफ्ट Array.insert जेनेरिक
अगर मैं समारोह त्रुटि संदेश समारोह में पहली पंक्ति के लिए कूदता है और परिवर्तनशील से Equatable को दूर करता है, तो मैं तो समारोह find()
कि मुझे लाइन पर के रूप में ही त्रुटि देता है के साथ कि की जगह 3.
उपयोग कर रहा हूँ आप 'insert' विधि के क्रियान्वयन प्रदान कर सकते हैं, या कम से कम उसके हस्ताक्षर? – Antonio
एनवीएम ... मुझे लगता है कि - यह एक 'ऐरे' एक्सटेंशन है, है ना? – Antonio
थोड़ा टेंगेंशियल, लेकिन वह त्रुटि संदेश उलझन में है क्योंकि 'ऐरे' टी को सामान्य जेनेरिक उप प्रकार के रूप में उपयोग करता है।यह कह रहा है कि 'टी' (इस फ़ंक्शन के लिए सामान्य प्रकार) परिवर्तनीय नहीं है 'टी' (सरणी के लिए सामान्य प्रकार)। यदि आप 'टी' के बजाय 'यू' रखने के लिए विधि हस्ताक्षर बदलते हैं तो यह अधिक स्पष्ट होगा। –