Optional Unwrapping방법에는 다음과 같은 것들이 있다.
1. Forced Unwrapping
2. Optional Binding (if let, guard 방법)
1. Forced Unwrapping
이 방법은 가장 간단하게 옵셔널의 값을 추출하는 방법이다.
그러나 가장 위험한 방법이기도 하다. Run Time 오류가 일어날수 있기 때문이다.
그렇기에 왠만하면 사용하지 않는 것이 옳다.
var myNumber: Int? = 1
print(myNumber) // optional(1)
print(myNumber!) // 1 //Forced Unwrapping 방법
2. Optional Binding
이 방법은 if let이나 guard를 사용하여서
해당 값이 nil인지 아닌지를 판별하여서 옵셔널이 아닌 형태로 사용을 가능하게 해준다.
if let 방법
var myNumber: String? = "myNumber"
if let firstletter = myNumber?.first{
print(firstletter) // m
} else {
print("nil")
}
guard 방법
var myNumber: String? = "myNumber"
func printFirstLetter(){
guard let firstletter = myNumber?.first else {
print("nil")
return
}
print(firstletter)
}
printFirstLetter() // m
Nil Coalescing은 만약 해당 값이 nil이라면,
어떤 값을 default로 주는 것이다.
var myName: String? = "Park"
var yourName: String? = nil
var passedMyName = myName ?? "Kim"
var passedYourName = yourName ?? "Lee"
print(passedMyName) //Park
print(passedYourName) //Lee
passedYourName같은 경우 내부에 nil이 있었기에,
yourName ?? "Lee" 에서 "Lee"라고 설정 되어 있는 것을 passedYourNamed으로 넣어준다.
'Programming > Swift' 카테고리의 다른 글
[Readable Coding Practice] Fetching data from REST API with URLSession (0) | 2021.06.18 |
---|---|
How to setup UITabBar programmatically (0) | 2021.06.06 |
Adrenalist does not collect any personal information (0) | 2021.05.06 |
[Swift] Struct vs. Class 언제 사용? (0) | 2020.10.22 |
[Swift] struct와 class (0) | 2020.10.18 |