반응형
inout란?
inout은 함수에서 파라미터를 변경할 수 있도록 허용하는 키워드입니다. 함수 내에서 파라미터 값을 수정하면, 함수 호출 시 전달된 실제 변수의 값이 변경됩니다.
inout 사용 예시
다음은 inout 키워드를 사용하는 간단한 예시입니다.
func increment(number: inout Int) {
number += 1
}
var myNumber = 10
increment(number: &myNumber)
print("Incremented Number: \(myNumber)") // 11
inout을 사용한 스왑 함수
inout을 사용하면 간단한 스왑 함수를 작성할 수 있습니다.
func swap<T>(_ a: inout T, _ b: inout T) {
let temp = a
a = b
b = temp
}
var firstValue = 5
var secondValue = 10
swap(&firstValue, &secondValue)
print("First Value: \(firstValue), Second Value: \(secondValue)") // 10, 5
inout의 주의사항
inout 파라미터는 함수 호출 시 변수에 직접 접근하기 때문에, 상수나 리터럴 값을 전달할 수 없습니다. 또한, inout 파라미터는 함수가 종료된 후에도 변경된 값이 유지되므로 주의해서 사용해야 합니다.
// 잘못된 사용 예시
// increment(number: 10) // 컴파일 에러: 상수는 inout 파라미터로 전달할 수 없음
반응형
'Apple > Apple_Swift' 카테고리의 다른 글
KeyPath란? (0) | 2024.08.08 |
---|---|
상속에 대한 기본 개념과 기능 누락 방지 방법 (0) | 2024.08.07 |
Swift에서의 Protocol, some, any 키워드: 자동차 예제로 쉽게 이해하기 (0) | 2024.07.29 |
indirect 키워드 (0) | 2024.07.28 |
@resultBuilder (0) | 2024.06.26 |