매개변수 'inout'은 Swift에서 함수에 전달되는 값을 변경할 수 있는 특별한 매개변수입니다.
기본적으로 Swift의 함수는 매개변수를 상수로 취급하여 값을 변경할 수 없습니다. 하지만 'inout' 매개변수를 사용하면 해당 매개변수에 전달된 값을 함수 내부에서 변경할 수 있습니다.
'inout' 매개변수는 함수 호출 시에 앰퍼샌드(&)를 사용하여 전달되며, 호출된 함수 내부에서 해당 매개변수를 변경하면 원래의 값을 변경시킬 수 있습니다.
이러한 변경은 함수 외부에서도 유지되며, 함수가 종료된 후에도 그대로 유지됩니다.
func swapValues(_ a: inout Int, _ b: inout Int) {
let temp = a
a = b
b = temp
}
var x = 10
var y = 20
print("Before swapping: x = \(x), y = \(y)") // Before swapping: x = 10, y = 20
swapValues(&x, &y)
print("After swapping: x = \(x), y = \(y)") // After swapping: x = 20, y = 10
그대로 값을 넣으면 상수이기 때문에 에러처리됩니다.
특정한 변수에 담아 함수로 앰퍼샌드로 전달해야합니다.
참고(출처) : 개발하는 정대리, 야곰(Swift5), ChatGpt
저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!