옵셔널 값 추출
옵셔널 바인딩이란 강제로 옵셔널을 여는 방식(Force unwrapping)이 아닌 안전하게 확인을 해보고 unwrapping하는 방법입니다.
즉, if문을 이용하여 옵셔널에 할당된 값을 임시 변수 또는 상수에 할당을 해주는 방식입니다.
Force unwrapping : !를 써서 강제로 옵셔널 추출
Optional Binding : if let, guard let을 써서 옵셔널 추출
if let 또는 if var 을 사용하여 옵셔널의 값이 존재하는지를 검사한 뒤, 존재한다면 그 값을 다른 변수에 대입시켜줍니다.
만약 옵셔널에 값이 있다면 if문 안으로 들어가게 되고 nil이라면 그냥 통과하게 되는 방식이죠!!
이렇게 확인을 해주고 unwrapping을 해준다면 강제로 unwrapping 해주는 것보다 훨씬 안전할 것입니다.
옵셔널 상수 x와 옵셔널 상수 y에 각각 10과 nil로 초기화를 해주었습니다. 강제 언래핑을 해서 x!, y!로 코드를 작성한다면 y!에는 오류가 생길겁니다. 하지만 옵셔널 바인딩을 사용해서 위 코드와 같이 쓴다면 값이 있는 x는 xx에 대입이 되서 if문을 수행하게 되고 값이 nil인 y는 yy에 대입하지 못하고 그냥 통과하게 될 겁니다.
여러 옵셔널 바인딩
옵셔널 바인딩을 할때는 여러 변수나 상수 또한 같이 할 수 있는데 이들을 ,(콤마)로 구분지어서 사용한답니다.
다음과 같이 문자열 옵셔널 상수 두개를 선언한 후 옵셔널 바인딩을 이용해 unwrapping을 해주었습니다. 이때 ,(콤마)를 이용해서 한번에 두 상수를 unwrapping을 해준것을 확인할 수 있었습니다.
나는 응용해서 하나는 nil 값을 대입해주었다.
이 경우 그냥 통과하게 되버린다 (Done)
'🦜 Swift' 카테고리의 다른 글
[Swift] 열거형 (0) | 2022.11.19 |
---|---|
[Swift] 클래스 (0) | 2022.11.19 |
[Swift] 구조체 (0) | 2022.11.19 |
[Swift] if let vs guard let (0) | 2022.11.19 |
[Swift] guard let (0) | 2022.11.19 |