2016-05-12 5 views
-2

Я не знаю, почему я получил эту ошибкуНевозможно присвоить постоянное значение Swift

Невозможно присвоить значение: «х» а «пусть» постоянного

с этим кодом :

func swap(x:AnyObject,y:AnyObject){ 
    let tmp = x 
    x=y 
    y=tmp 
} 

Я должен

Думайте иначе

возможно?

+0

[Существует уже 'функция Swift.swap'] (http://iswift.org/cookbook/swap-2-elements-in-array). Кроме того, ваша функция подкачки ничего не делает, поскольку x и y не выходят из строя. – kennytm

+0

Я попытался использовать swap, но я не использую переменные типа 'inout' –

+0

'swap (list [index], y: list [index + 1])' –

ответ

4

Функциональные параметры являются константами в Swift. В предыдущих версиях вы могли бы сделать их изменяемыми, пометив их с var, но это уходит в Swift 3.

Если вы действительно хотите поменять пропущенные значения, вы должны объявить их inout:

func swap(inout x: AnyObject, inout y: AnyObject) { 
    let tmp = x 
    x = y 
    y = tmp 
} 

или просто ...

func swap(inout x: AnyObject, inout y: AnyObject) { 
    (x, y) = (y, x) 
} 
Смежные вопросы