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
반응형
'Language > Swift' 카테고리의 다른 글
[Optional] (0) | 2021.05.12 |
---|---|
[2_객체지향 프로그래밍과 스위프트] Chapter10. property, method (0) | 2021.03.11 |
[2_객체지향 프로그래밍과 스위프트] Chapter9. struct/class (0) | 2021.03.11 |
[1_스위프트 기초] Chpater8. Optional (0) | 2021.03.11 |
[1_스위프트 기초] Chaptrer 1. Swift (0) | 2021.03.11 |