Swift: In-Out

Snack 남관식·2023년 7월 10일
0

Swift

목록 보기
3/7
post-thumbnail

In-Out

  • 함수 내에서 파라미터로 전달된 변수의 값을 수정할 수 있도록 하는 키워드

In-Out 파라미터

  • Swift에서 함수의 파라미터는 기본적으로 값(Value)으로 복사되어 전달되어, 함수 내부의 파라미터에 대한 변경은 함수 외부에 영향을 주지 않는다.
  • inout 키워드를 통해 해당 변수의 참조(Reference)를 전달하여 함수 내에서 직접 변경할 수 있다.
var a = 2
var b = 3

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

swapInt(&a, &b) // a는 3, b는 2
  • 함수를 호출할 때 파라미터에 &를 사용하여 변수의 주소값을 전달해야 한다.

In-Out 원리

  • inoutcopy-in copy-out의 줄임말로, 파라미터가 함수 호출 시 값의 복사본을 만들어 전달하고, 함수 내에서 변경된 값을 다시 복사하여 원본 변수에 할당하는 방식으로 작동한다.
    1. 함수가 호출되면 파라미터로 넘겨진 변수가 복사된다.
    2. 함수 내부에서 복사한 값을 수정한다.
    3. 함수 종료 시에 변화된 값을 원본 변수에 재할당한다.
profile
iOS Developer | Product Designer @snacknam

0개의 댓글