[Swift 입문] 함수에서의 Call By Reference
Call by Reference란?
Call by Reference -> 다른말로 참조에 의한 전달이라고 하는 이것은, 전자와 같이 실제 X라는 값이 존재하는 데이터의 메모리상의 주소값을 함수의 인자로 전달함을 의미한다.
즉, 함수에서 인자로 전달받은 값을 수정할 경우 실제 X라는 값이 변경된다는 의미이다.
(위에서 말했던 경우 중 후자에 해당하는 값의 복사는 Call By Value라고 부른다.)
무슨말인가? 아래의 경우를 보자.
위와같이 x라는 변수가 5라는 값을 갖고있을 때, 함수에서 해당 값을 변경하려고하면, 애러가 발생하는것을 볼 수 있다.
애러 원인은 num이라는 매개변수로 들어온 값은 let(==상수) 이므로 변경이 불가능하다는 이야기다.
그럼 어떻게 실제값을 변경할 수 있을까?
아래와 같이 inout 키워드와 '&'을 이용하면 해결이 가능하다.
우측에 변수 값을 보게되면, 5였던 값이 10으로 변경된 것을 볼 수 있다.
함수에 'inout' 키워드를 넣고, 인자를 전달할 때, x앞에 '&'을 붙여줌으로 해당 문제를 해결했다.
변수에 '&'를 붙여준다는 것은 x라는 값이 저장되어있는 메모리의 주소를 함수에 전달해 준다는 의미이다.
지금 이해하기 어렵다면, 일단 넘어가도 좋을듯하다.
2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 1. 시작하기
2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 2. Project 시작하기
2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 3. 에뮬레이터로 앱 실행하기
2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 4. 앱 아이콘 설정하기
2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 5. LaunchScreen 만들기
2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 6. Swift 문법 알아보기
2019/03/18 - [프로그래밍/Swift] - [Swift 입문] 7. Swift 문법 알아보기 (배열, 딕셔너리 등)
2019/03/19 - [프로그래밍/Swift] - [Swift 입문] 8. Swift 함수 정의하기
2019/03/19 - [프로그래밍/Swift] - [Swift 입문] Tip) 줄바꿈 없는 print
'프로그래밍 > Swift - 이론' 카테고리의 다른 글
[Swift 입문] 10. 열거형 Enum (0) | 2019.03.19 |
---|---|
[Swift 입문] 9. Class 만들기 (생성, 상속) (0) | 2019.03.19 |
[Swift 입문] Tip) 줄바꿈 없는 print (0) | 2019.03.19 |
[Swift 입문] 8. Swift 함수 정의하기 (0) | 2019.03.19 |
[Swift 입문] 7. Swift 문법 알아보기 (배열, 딕셔너리 등) (0) | 2019.03.18 |