함수 매개변수는 기본적으로 상수입니다. 만약 함수 내에서 함수 매개 변수의 값을 변경하려고 하면 compile-time error
가 발생하게 됩니다. 그러나 in-out
매개변수는 함수가 매개변수 값을 수정할 수 있게 하고 함수 호출이 끝난 후에도 변경 사항을 유지할 수 있게 합니다.
인아웃 매개변수는 유형 바로 앞에 키워드를 배치하는 식으로 작성합니다. 인아웃 매개변수는 함수 안으로 전달되는 값을 가지고 있으며 함수에 의해 수정되고, 기존 값을 대체하기 위해 다시 함수 밖으로 전달됩니다.
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}
&
을 추가하여 함수에서 수정할 수 있음을 나타냅니다.