Swift에서는 함수의 파라미터가 상수이므로 함수 내부에서 값을 변경할 수 없다. 하지만 inout
파라미터를 사용하면 가능하다. 바로 예제를 살펴 보면 다음과 같다.
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temp = a
a = b
b = temp
}
var someInt = 3
var anotherInt = 107
swapTwoInts(&someInt, &anotherInt)
// someInt = 107, anotherInt = 3
함수 파라미터 타입 앞에 inout
키워드를 추가해주고, 함수의 인자를 전달할 때 &
를 붙여 사용해주면 된다. 그리고 전달할 값은 당연히 변수이어야 한다.
https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID545