Language/Swift

[Optional]

개랭갱깽스타 2021. 5. 10. 13:53

Optional의 값을 Optional 이 아닌 값으로 추출 = Optional Unwrapping

1. 강제추출(Forced Unwrapping)

var myName: String? = "yagom"
var yagom: String = myName!

myName = nil
yagom = myName!

if myName != nil {
    print("My name is \(myName)")
} else {
    print("myName == nil")
}

 

2. OptionalBinding

var myName:String? = "gaeng"

if let name = myName {
    print("My name is \(name)")
} else {
    print("myName == nil")
}

//Optional Binding 을 통한 임시 변수 할당
if var name = myName {
    name = "wizplan"    //변수이므로 내부에서 변경 가능
    print("myName is \(name)")
} else {
    print("myName == nil")
}

//Optional Binidng 을 통한 여러 개의 옵셔널 값의 추출
var myName: String? = "gaeng"
var yourName: String? = nil

if let name = myName, let friend = yourName {
    print("We are friend!")
}
yourName = "eric"

if let name = myName, let friend = yourName {
    print("We are friend! \(name), & \(friend)")
}

 

3. 암시적 추출 옵셔널(Implictly Unwrapped Optionals)

var myName:String! = "yagom"
print(myName)
myName = nil

if var name = myName {
    print("My name is \(name)")
} else {
    print("myName == nil")
}

//myName.isEmpty //error - Unexpectedly found nil while implicitly unwrapping an Optional value
반응형