[Swift] (기초) Optional Unrapping / 옵셔널 언래핑
2021. 7. 16. 21:08ㆍ🍏/Swift 기초 공부
옵셔널 언래핑
정말 꼭 필요한 경우에 한하여, 자신이 책임질 수 있는 상황이 아니라면 옵셔널 강제추출을 사용하지 않아야한다.
- Optional Binding
> 옵셔널의 값을 꺼내오는 방법 중 하나 nil 체크 + 안전한 값 추출
- Force Unwrapping
> 옵셔널의 값을 강제로 추출
func printName(_ name: String) {
print(name)
}
var myName: String? = nil //"chan"
// printName(myName) 전달되는 값의 타입이 다르기 때문에 컴파일 오류발생
if let name: String = myName{
printName(name)
}else {
print("myName == nil")
}
// name 상수는 if-let 구문 내에서만 사용가능합니다
// 상수 사용범위를 벗어났기 때문에 컴파일 오류 발생
// printName(name)
var myName_: String? = "chan"
var yourName: String? = nil
if let name = myName_, let friend = yourName {
print("\(name) and \(friend)")
}
// yourNamedl이 nil이기 때문에 실행되지 않습니다.
yourName = "kanna"
if let name = myName_, let friend = yourName {
print("\(name) and \(friend)")
}
// chan and kanna
var myNameF: String? = "chan"
printName(myNameF!)
myNameF = nil
/* printName(myNameF!) */ // 강제추출시 값이 nil이므로 런타임 오류 발생
var yourNameF: String! = nil
/* printName(yourNameF) */ //nil 값이 전달되기 때문에 런타임 오류 발생
'🍏 > Swift 기초 공부' 카테고리의 다른 글
[Swift] (기초) Class / 클래스 (0) | 2021.07.16 |
---|---|
[Swift] (기초) Sturct / 구조체 (0) | 2021.07.16 |
[Swift] (기초) Optional / 옵셔널 (0) | 2021.07.13 |
[Swift] (기초) 조건문 / 반복문 (0) | 2021.07.13 |
[Swift] (기초) 함수 (0) | 2021.07.12 |