2015-11-03 10 views
19

मैं एक साधारण सरणी की तरह:स्विफ्ट सरणी में तत्वों का आदान-प्रदान कैसे करें?

var cellOrder = [1,2,3,4] 

मैं पहली बार तत्व के साथ एक दूसरा तत्व लगता है जैसे तत्वों का आदान-प्रदान करना चाहते हैं।

और परिणाम होगा:

[2,1,3,4] 

मैं जानता हूँ कि हम NSMutableArray साथ exchangeObjectAtIndex उपयोग कर सकते हैं लेकिन मैं तेज सरणी का उपयोग करना चाहते। [Int] सरणी के साथ ऐसा करने के किसी भी तरीके?

+4

आपको 'स्वैप()' के बारे में पता होना चाहिए क्योंकि आपने * इसके बारे में एक प्रश्न पोस्ट किया है: [घातक त्रुटि: अपने साथ एक स्थान स्वैप करना स्विफ्ट 2.0 के साथ समर्थित नहीं है] (http://stackoverflow.com/questions/ 3268 9 753/घातक-त्रुटि-स्वैपिंग-ए-लोकेशन-साथ-समर्थित-साथ-समर्थित-स्विफ्ट-2-0) –

उत्तर

38

उपयोग swap:

var cellOrder = [1,2,3,4] 
swap(&cellOrder[0], &cellOrder[1]) 

वैकल्पिक रूप से, आप इसे एक टपल के रूप में प्रदान कर सकते हैं:

(cellOrder[0], cellOrder[1]) = (cellOrder[1], cellOrder[0]) 
+0

बहुत ही सुरुचिपूर्ण और सरल –

+0

स्विफ्ट 4 में अब यह 'swapAt' – Rishab

+0

' swapAt' है अलग-अलग फ़ंक्शन जो 'इनआउट' मानों के बजाय इंडेक्स लेता है। इसका उपयोग इस समस्या को हल करने के लिए भी किया जा सकता है, लेकिन 'स्वैप' के लिए प्रतिस्थापन नहीं है (जो अभी भी स्विफ्ट 4 में मौजूद है)। –

7

एक विकल्प है:

cellOrder[0...1] = [cellOrder[1], cellOrder[0]] 
13

तेज 4:

cellOrder.swapAt(index0, index1)

+1

यह प्रश्न का उत्तर नहीं प्रदान करता है। किसी लेखक से स्पष्टीकरण की आलोचना या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/16686681) – basvk

+1

@basvk मुझे लगता है कि यह सवाल का जवाब देता है - यह दिखाता है कि सरणी से "दो तत्वों को स्वैप" कैसे करें। और यह प्रश्न का एक वैध जवाब है (भी सही)। – Zizouz212

+1

@basvk आपकी सलाह के लिए धन्यवाद। इस सवाल का जवाब देने के लिए, 'cellOrder.swapAt (0, 1)' समझने के लिए बेहतर होना चाहिए। और @ Zizouz212 भी धन्यवाद। – hstdt

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