Swift랑 친해지기/Swift문법정리

[Swift] 입출력 파라미터 (IN - OUT Parameter)

데브킹덕 2022. 8. 4. 15:33

함수 바디 안에서 num과 num2는 임시상수이기 떄문에 값을 변경해 줄 수 없다.

 

입출력 파라미터를 사용하면 함수 내부에서 값을 변경할 수 있다. 

 

입출력 파라미터 사용법

//함수 선언시
(name: inout Type)
//함수 호출시
functionName(argumentLabel: &expression)

1. whatMorning함수를 호출한다.

2.변수 badmorning,goodmorning의 저장된 값을 복사해서 전달한다

3. 함수 바디 내부로 복사 된다 (Copy - In)
4. 함수 종료시 변경한 값이 인자로 전달한 변수에 복사된다 (Copy - Out)

 

//동일한 변수는 불가능
whatMorning(&badmorning, &badmorning)

//값을 저장하는 메모리 공간이 없는 리터럴 불가능
(현재는 String이지만 Int형으로 가정해도 불가능)
//메모리 공간을 가지고 있는 변수를 기본값으로 두어도 기본값을 허용하지 않음
whatMorning(&10, &10)