Swift
inout
삼쓰 웅쓰
2019. 10. 24. 22:07
728x90
함수로 전달된 파라미터는 함수 내부에서 상수로 취급된다. 이때 파라미터의 값을 변경해주고 싶다면, inout
을 붙여준다. 이는 함수 내부에서 값이 변경될 것이라는 신호다. 바로 변수로서 값을 변경할 수 있고 외부 변수의 값도 바뀐다.
따라서 함수의 파라미터는 당연히 값이 변경될 수 있는 var로 선언된 변수여야하며, &
를 붙여서 레퍼런스를 넘겨준다.
예를들어 다음과 같이 사용한다,
func doulbeInPlace(number: inout Int) {
number *= 2
}
var myNum = 10
doubleInPlace(number: &myNum)
print(myNum) // 20