티스토리 뷰
In-Out Parameters
copy-in copy-out
함수 매개 변수는 기본적으로 상수(Constant)입니다.
함수 매개 변수의 값을 해당 함수의 본문 내에서 변경하려고 하면 compile-time 오류가 발생합니다.
함수에서 매개 변수의 값을 수정하고 함수 호출이 종료된 후에도 변경 사항을 유지하려면 inout 파라미터를 사용하면 됩니다.
inout 키워드를 앞에 작성하면 됩니다.
inout 매개 변수는 함수에 전달된 값을 가지며 함수에 의해 수정되며 원래 값을 대체하기 위해 함수에 다시 전달됩니다.
var에만 inout 매개 변수로 전달할 수 있습니다.
상수 및 리터럴은 수정이 불가능하므로 인수로 전달할 수 없습니다.
변수 이름 앞에 앰퍼샌드(&)를 써서 수정될 수 있음을 나타냅니다.
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}
swapTwoInts(_:_:)는 b와 a를 교체하는 함수입니다.
var someInt = 3
var anotherInt = 107
swapTwoInts(&someInt, &anotherInt)
print("someInt is now \(someInt), and anotherInt is now \(anotherInt)")
// Prints "someInt is now 107, and anotherInt is now 3"
참고
https://docs.swift.org/swift-book/LanguageGuide/Functions.html
https://jcsoohwancho.github.io/2019-12-19-inout/
'Swift' 카테고리의 다른 글
[RxSwift] withLatestFrom, combineLatest 그리고 Zip (0) | 2021.06.18 |
---|---|
[RxSwift] Driver란? (Realy? Signal?..) (0) | 2021.05.24 |
[RxSwift] Hot Observable vs Cold Observable 차이 (0) | 2021.05.14 |
[Swift] Understanding Swift Performance - sturct와 class (0) | 2021.05.06 |
[Swift] static 타입 프로퍼티, 타입 메서드 (0) | 2021.05.06 |
댓글
공지사항