swift optional chainLanguage/Swift2022. 8. 24. 16:01
Table of Contents
optional 타입은 nil이 할당될 수도 있는 값을 의미합니다.
struct Human {
var name: String?
var man: Bool = false
}
struct Univ {
var univName: String?
var student: Human?
}
var universityStudent: Univ? = Univ(univName: "Harvard", student: Human(name: "Bill", man: true))
if let univ = universityStudent {
if let student = univ.student, let universityName = univ.univName {
if let name = student.name {
print("\(universityName) 대학교 다니는 \(name)입니다")
}
}
}
if let name = Human.name 과 같이 안정성 여부를 검사해야 합니다.
강제로 해제할 경우 예상치 못한 오류를 발생시킬 수 있습니다.
optional을 하나하나 확인하기보다는 optional 체인으로 사용을 하면 한 줄로 줄일 수 있습니다.
- 옵셔널 체인으로 참조된 값은 무조건 옵셔널 타입으로 반환합니다.
- 옵셔널 체인 과정에서 옵셔널 타입들이 여러번 겹쳐 있더라도 중첩되지 않고 한 번만 처리됩니다.
struct Human {
var name: String?
var man: Bool = false
}
struct Univ {
var univName: String?
var student: Human?
func getStudent() -> Human? {
return self.student
}
}
var universityStudent: Univ? = Univ(univName: "Harvard", student: Human(name: "Bill", man: true))
if let name = universityStudent?.getStudent()?.name {
print("학생의 이름은 \(name) 입니다")
}
name에 대한 값을 반환받기 위해 Human을 반환하는 메소드를 추가하였습니다.
'Language > Swift' 카테고리의 다른 글
swift compile & package 사용법 (0) | 2022.08.25 |
---|---|
swift extensions (0) | 2022.08.24 |
swift class type casting, init (0) | 2022.08.24 |
swift property observer (0) | 2022.08.23 |
swift date, dateFormatter 날짜 구하기 (0) | 2022.08.23 |
@jaewpark :: 코스모스, 봄보다는 늦을지언정 가을에 피어나다
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!