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