Swift
Optional Chaining
GREEN.1229
2021. 4. 12. 19:33
안녕하세요. 그린입니다🟢
이번 포스팅에서는 Optional Chaining 옵셔널 체이닝에 대해 학습해보겠습니다.
옵셔널 체이닝 (Optional Chaining)
: 옵셔널 체이닝이란 옵셔널을 여러번 체인 처럼 사용하는 기술
-> 옵셔널 체이닝을 된 부분에서 값이 하나라도 nil이면 nil을 반환
옵셔널 체이닝의 사용
import Foundation
class Camper {
var nickName: String
var description: Description?
init(nickName: String) {
self.nickName = nickName
}
}
struct Description {
var gender: Gender?
var age: Int
}
class Gender {
var gender: String
init(gender: String) {
self.gender = gender
}
}
let green: Camper = Camper(nickName: "green")
let greenGender: String? = green.description?.gender?.gender
: 이렇게 옵셔널 체이닝을 사용하여 줄 수 있다.
: 만약 강제추출로 옵셔널 체이닝을 해준다면 값이 nil이기에 런타임 오류가 발생한다.
if let greenGender: String = green.description?.gender?.gender {
print(greenGender)
} else {
print("Not Found")
}
green.description?.gender?.gender = "Male"
: 옵셔널 체이닝과 옵셔널 바인딩의 혼합되어 사용하여 값을 찾을 수 있음
green.description = Description(gender: nil, age: 77)
green.description?.gender = Gender(gender: "Male")
: 값을 찾으려면 체이닝 연결된 단계별로 값을 주어주면됨
[참고자료]
스위프트 프로그래밍 3판 (야곰 지음)