[Swift] 변수인 인자, 입출력 인자 (in-out parameter)

팔랑이·2023년 6월 9일
0
post-thumbnail
  1. 변수인 인자

기본적으로 함수가 인자(parameter)를 받을 때, 이 인자는 상수 취급됨.
함수 내에서 인자의 값을 변경하려면 섀도우 복사본 (shadow copy)를 생성해야 함.

func calculate(length:Float, width: Float) -> Float{
//값을 변경하기 위해 shadow copy 생성
var length = length
var width = width 

length = length*2.54
width = width*2.54

return length * width
}
  1. 입출력 인자 (in-out parameter)

원본 변수를 어떤 함수의 인자로 사용하여 값을 도출한다 해도 원본 변수의 값은 변하지 않음.
함수 내에서 도출된 값을 원본값에 유지하고 싶다면, 입출력 인자 (in-out parameter)로 선언하고, shadow copy는 지정하지 않으면 된다.

myValue = 10

func doubleValue(_value: inout Int) -> Int{
//shadow copy 없음

value += value

return value
}

이 함수를 호출하여 원본값 변경을 유지하고 싶을 때, 원본 변수 앞에 &를 붙인다.

print("doubleValue call returned \(doubleValue(&myValue))")

//-> doubleValue call returned 20

📚 참고도서
[SwiftUI 기반의 iOS 프로그래밍]

profile
정체되지 않는 성장

0개의 댓글