- IOS/swift
Inout 키워드
더모어더베러
2022. 4. 20. 17:32
Inout 키워드 사용 목적
- swift에서 함수의 매개변수는 call by value 으로 복사된 값을 전달받는 방식입니다. 전달 받은 매개변수는 이름은 변수지만 상수로 쓰이므로 함수 중간에서 값을 변경하면 에러가 발생합니다.
- 함수의 매개변수에 inout 키워드를 입력 하면 call by reference 으로 해당 변수를 가르키는 reference(메모리주소)를 전달 받습니다. 이는 함수 중간에서 값이 변경 될 수 있습니다.
사용 형태
func addTwoNumber(num1: Int, num2: inout Int) -> Int { // 자료형 앞에 inout을 붙인다
num2 = 5 // inout 매개변수는 함수 중간에 값이 변경이 가능하다, 7번째줄 test2가 5로 바뀐다
return num1 + num2
}
var test1 = 1
var test2 = 2
addTwoNumber(num1: test1, num2: &test2) // inout으로 쓰이는 인자는 앞에 엠퍼센트가 붙는다