함수 바디 안에서 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)
'Swift랑 친해지기 > Swift문법정리' 카테고리의 다른 글
[Swift] Nested Function (내포된 함수) (0) | 2022.08.08 |
---|---|
[Swift] Function Types (0) | 2022.08.08 |
[Swift] 가변 파라미터 (Variadic Parameters) (0) | 2022.08.04 |
[Swift] Argument Label (1) | 2022.08.02 |
[Swift] Function (함수) (0) | 2022.08.02 |