옵셔널에 속해 있는 nil일지도 모르는 프로퍼티, 메서트, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정
옵셔널에 값이 있다면 프로퍼티, 메서드, 서브 스크립트 등을 호출할 수 있고, 옵셔널이 nil이라면 프로퍼티, 메서드, 서브스크립트 등은 nil을 호출한다.
옵셔널 체이닝은 프로퍼티나 메서드 또는 서브스크립트를 호출하고 싶은 옵셔널 변수나 상수 뒤에 물음표(?) 를 붙여 표현한다.
옵셔널을 안전하게 처리하는 방법
class Person{
let name:String;
var roomNumber:Int?
init(name : String) {
self.name = name
}
}
let junseole:Person = Person(name:"junseole")
if let roomNumber:Int = junseole.roomNumber{
print(roomNumber)
}else{
print("Can not find room number")
}
핵심 키워드는 guard 이다.
guard 구문은 항상 else 구문이 뒤에 따라와야 한다.
guard 뒤에 오는 코드의 실행 결과가 항상 true 여야만 실행한다.
guard (Bool 타입 값) else{
//예외사항 실행문
}