코딩테스트를 연습하다가 다른 사람 풀이를 봤는데 inout이라는 parameter를 사용하는걸 보고 찾아봤다.
function을 사용할때 사용하는 parameter는 그 function 이외의 부분에서 수정되지 않는다. 왜냐하면 모든 parameter들은 constant이다.
function changeToTwenty(number: Int){
number = 20
}
var num = 5
changeToTwenty(number: num)
이렇게 사용해도 num은 바뀌지 않는다.
하지만, inout을 사용하면 변화를 줄 수 있다.
function changeToTwenty(number: inout Int){
number = 20
}
var num = 5
changeToTwenty(number: &num)
이런식으로 function에는 inout을 사용해주고 function을 호출하는 부분에 들어가는 parameter에는 & 을 넣어준다. 그러면 num이라는 variable이 우리가 원하는 20으로 바뀌게 된다. array 등 여러가지 parameter에서도 사용 가능하니 아주 유용하게 쓰일 거 같다.