강제 언래핑
옵셔널 바인딩
var str: String?
str = "Hello"
if let hi = str {
print(hi) // "hello"
else {
print("하이여~")
// 만약 hi가 nil이라면 "하이여~" 출력
}
var str: String?
str = "Hello"
func sayHello() {
guard let hi = str else {
return print("하이여~")
// 만약 hi가 nil이라면 "하이여~" 출력
}
print(hi) // "Hello"
}
옵셔널 체이닝
person.house?.animal?.dogType
// house, animal 중 하나라도 nil 값이면 nil, 둘 다 값이 있으면 dogType을 도출하지만 옵셔널 타입
nil coalescing
var str: String?
str = "Hello"
print(str ?? "하이여~)
// str이 nil이 아니기 때문에 "Hello" 반환, 만약 nil이라면 "하이여~" 반환