인-아웃 파라미터 (In-Out Parameter)
- 인자 값을 직접 변경하는 파라미터로 파라미터 앞에 inout이라는 키워드를 사용합니다. 아래 예시는 두 수의 값을 바꿔주는 함수입니다.
func swap(_ swapped: inout Int, with target: inout Int) {
let temp = swapped
swapped = target
target = temp
}
- 위의 함수를 실제로 사용하기 위한 방법은 아래와 같습니다.
var something = 10
var another = 20
swap(&something, with: &another)
- 일반적인 파라미터와 다르게 앞에 &를 붙여줍니다. 즉, inout을 붙이면 변수나 상수 그 자체를 입력값으로 넣는 것이 아니라 그 변수나 상수의 주소를 넣고, 이는 포인터의 개념과 비슷합니다.
- 인-아웃 파라미터는 default 값을 설정할 수 없고, Set은 inout으로 선언될 수 없습니다.