Optional 타입
값을 반환할 때 오류가 발생할 가능성이 있는 값은 옵셔널 타입으로 감싸서 반환함
옵셔널 타입을 선언하기 위해서는 타입 선언부 뒤에 ? 를 붙임
forced unwrapping - 강제 언래핑
var x : Int? //옵셔널 정수형 변수 x 선언
var y : Int = 0
x = 15 // 초기값이 없으면 nil이 저장됨
print(x) // Optional(15)
print(x!) // forced unwrapping해서 10이 나옴
// 옵셔널에 래핑된 값을 !를 붙여서 풀어줌
print(y)
x = x! + 2 // 가능 -> forced unwrapping을 사용하면 가능
print(x) // Optional(17)
y = x! // 가능 -> forced unwrapping을 사용하면 가능
print(y) // 17
Optional Binding - 강제 언래핑 하는 또 다른 방법
옵셔널에 할당된 값을 임시 변수 또는 상수에 할당
var x : Int?
x = 15
if let xx = x { //옵셔널 변수 x가 값(10=5)이 있으므로 언래핑해서 일반 상수 xx에 대입하고 if문 실행
print(x, xx) //Optional(15) 15
}
else {
print("nil")
}
var x1 : Int?
if let xx = x1 { //옵셔널 변수 x1이 값이 없어서 if문의 조건이 거짓이 되어 if문 실행하지 않고 else로 감
print(xx)
}
else {
print("nil")
}
여러 옵셔널 변수들을 한번에 언래핑
var pet1: String?
var pet2: String?
pet1 = "cat"
pet2 = "dog"
if let firstPet = pet1, let secondPet = pet2 { //, 를 사용하여 한번에 언래핑
print(firstPet, secondPet) // cat dog
} else {
print("nil")
}
'Swift' 카테고리의 다른 글
Swift 정리 : 제어문 (0) | 2022.09.27 |
---|---|
Swift 정리 : Nil-Coalescing Operator(Nil합병연산자) (0) | 2022.09.27 |
Swift 정리 : 연산자 (0) | 2022.09.27 |
Swift 정리 : 튜플 (0) | 2022.09.27 |
Swift 정리 : 자료형 (0) | 2022.09.27 |