코딩하는 제리

[Swift] call by reference 본문

iOS/SwiftUI

[Swift] call by reference

JerryCho 2022. 1. 12. 08:24

- 기본값은 call by value, 값만 복사.
- call by reference는 데이터의 메모리 주소값을 전달.
- 함수 인자로 전달받은 값을 수정할 경우 실제 변수의 값을 변경.
- 매개변수 타입 앞에 inout 키워드와 인자로 넘겨줄 변수명 앞에 & 키워드를 사용.

var myValue = 10
func changeRealValue(num: Int) -> Int {
  num = 20  // 에러 발생
  return(num)
}
print(doubleValue(value: myValue)

···

var myValue = 10
func changeRealValue(num: inout Int) -> Int {
  num = 20  // OK, myValue 변수의 값도 20으로 변경 됨.
  return(num)
}
print(doubleValue(value: &myValue) // 20
print(myValue) // 20

 

Comments