У Swift есть что-то вроде ключевого слова "ref", которое заставляет параметр передаваться по ссылке?
В Swift структуры и типы значений передаются по значению по умолчанию, как и в С#. Но С# также имеет очень полезное ключевое слово ref, которое заставляет параметр передаваться по ссылке, так что тот же экземпляр может быть изменен внутри функции и после этого доступен из области вызова. Есть ли способ добиться того же результата в Swift?
Ответы
Ответ 1
Используйте параметр inout
для параметра функции.
func swapTwoInts(a: inout Int, b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}
swapTwoInts(&someInt, &anotherInt)
См. Параметры функции и возвращаемые значения в документах.