swift

swift - Optional Binding

행복하게사는게꿈 2021. 1. 4. 19:31

Optional Binding

 

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
}