Old_SWIFT(221012)/기본이야기

inout(In-Out) 파라미터

KataRN 2022. 9. 27. 13:56
반응형

안녕하세요 KataRN입니다.

오늘은 inout(In-Out)에 대해 알아보겠습니다.

 

예를들면 a와 b의 숫자를 바꾸는 함수를 만든다고 가정해볼게요.

단순하게 생각하면 a값을 저장해놓고 a를 b로 b를 a로 바꾸면 될것같습니다?(더 좋은 예를 못찾겠어서.. 다른방법으로 함수를 만들면 되겠지만 inout 설명을 위해 만든점 양해바랍니다...)

그리고 당연히 이건 안된다고 뜹니다.

이유는 파라미터는 변수가 아닌 변경이 불가능한 상수이기 때문입니다.

 

이처럼 변경이 불가능한데 가능하게 하려면 inout을 쓰면됩니다.

그리고 함수 사용시 파라미터를 입력할때 & 이 기호를 붙여주면 함수가 종료되어도 결과는 지속됩니다.

 

아래의 예제를 설명할게요.

func swap(_ a: inout Int, _ b: inout Int) {
    let temp = a
    a = b
    b = temp
}

var numberA = 5
var numberB = 95
swap(&numberA, &numberB)

swap함수를 호출하기 전에는 numberA : 5, numberB : 95 입니다.

호출 뒤에는 numberA: 95, numberB: 5 가 될것입니다.

 

사용법에 대해 적절한 예를 못들은것 같아서 죄스럽네요...

저같은 경우에도 거의 사용은 안하는데 다른분들의 글을 참고할때 자주나와서 확실하게 이해는 해야될것같아서

정리하게되었습니다.

 

오늘도 읽어주셔서 감사합니다.

반응형