옵셔널 추출

1. 옵셔널 바인딩 (Optional Binding)

- 옵셔널의 값을 꺼내오는 방법 중 하나

- nil 체크를 함과 동시에 안전한 값을 추출

- if let 방식을 통해서 옵셔널 바인딩을 할 수 있음

 

var myName: String? = "khon"

var yourName: String? = nil

 

if let name = myName, let friend = yourName {

print("\(name) and \(friend)")

}

// yourName이 nil이기 때문에 실행되지 않음

 

yourName = "khon01"

if let name = myName, let friend = yourName {

print("\(name) and \(friend)")

}

// khon and khon01

 

 

2. 강제 추출 (Force Unwrapping)

- 옵셔널의 값을 강제로 추출하는 방식

- 뒤에 !를 붙이게 되면 옵셔널 타입 안에 값을 강제로 추출하게 됨

- 강제 추출 방식은 추천되는 방법은 아님

 

func printName(_ name: String) {

print(name)

}

 

var myName: String? = "khon"

printName(myName!)   // !로 인한 khon강제 추출

 

myName = nil

 

print(myName!)

// 강제 추출 시 값이 없으므로 오류 발생

 

var yourName: String! = nil

 

printName(yourName)

// nil 값이 전달되기 때문에 오류 발생

'Swift > 문법' 카테고리의 다른 글

클래스  (0) 2021.01.27
구조체  (0) 2021.01.27
옵셔널(Optional)  (0) 2021.01.27
반복문  (0) 2021.01.27
조건문  (0) 2021.01.27
Posted by khon98
,