OptionalExpression이 return 하는 값이 있으면 let 변수에 unwrapping된 형태의 값이 저장된다.
var num: Int? = nil
// Forced Unwrapping
// 값이 저장되지 않았을때 강제 추출하면 err 발생
// print(num!)
// 근데 이런 형식으로는 거의 작성하지 않는다.
if num != nil {
print(num)
}
if let num = num {
print(num)
}
var str: String? = "str"
guard let str = str else{
// else 블록에서는 바인딩한 상수를 인식하지 못함 str
fatalError()
}
str
num = 123
if var num = num {
num = 456
}
let a: Int? = 12
let b: String? = "str"
if let num = a, let str = b, str.count > 5{
// 두가지 모두 binding이 성공한 경우 여기가 실행
// condition을 같이 사용하는 것도 가능 -> str.count > 5
}