2015-11-03 56 views
19

我有一个简单的阵列,如:如何交换swift数组中的元素?

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

我想交换像假设与第一元件的第二元件的元件。

而结果将是:

[2,1,3,4] 

我知道我们可以用exchangeObjectAtIndexNSMutableArray但我想使用快捷阵列。任何方式与swift [Int]数组相同?

+4

因为*你发布了一个关于它的问题:[致命错误:Swift 2.0不支持交换位置] 32689753 /致命错误交换-a-location-with-its-is-not-supported-with-swift-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

在swift 4现在'swapAt' – Rishab

+0

'swapAt'是一个不同的函数需要索引而不是'inout'值。它也可以用来解决这个问题,但不能代替'swap'(它仍然存在于Swift 4中)。 –

7

一种选择是:

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

SWIFT 4:

cellOrder.swapAt(index0, index1)

+1

这不提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 - [来自评论](/ review/low-quality-posts/16686681) – basvk

+1

@basvk我认为它回答了这个问题 - 它展示了如何从数组中“交换两个元素”。这是一个有效的答案(也是正确的)。 – Zizouz212

+1

@basvk感谢您的建议。要回答这个问题,'cellOrder.swapAt(0,1)'应该更好理解。还要感谢@ Zizouz212。 – hstdt