티스토리 뷰
안녕하세요! Swallow입니다!
이번 포스팅은
⭐️ 옵셔널 패턴 ⭐️
관한 글입니다!
항상 어떠한 조언, 충고 환영입니다!
시작하기에 앞서 이 글은
앨런 Swift 문법 마스터 스쿨 강의와 야곰님의 스위프트 프로그래밍 책을
공부하고 참고하여 작성하였습니다!
그럼 시작하겠습니다!
지난 포스팅에서는
열거형 case 패턴에 대해서 알아보았습니다!
오늘 배울 내용은
옵셔널 패턴에 관한 내용인데,
이 내용은 지난 포스팅과 이어지는 내용입니다!
이전 포스팅을 보지 못하신 분이라면
열거형(Enumeration) 정복하기 - 3장
눌러주세요!!
그럼, 본격적으로 시작해 보겠습니다!!
옵셔널 패턴이란?
옵셔널 타입에서 열거형 case 패턴을 더 간소화 한 문법입니다!
자세한 내용은 밑의 예시를 통해 말씀드릴게요!
열거형 case 패턴과 비교를 해서
예시를 한번 보시겠습니다!
위의 예시는 열거형 case 패턴입니다!
coffee변수에 String? 타입으로 값이 들어있고,
coffee변수를 switch문을 통해 처리를 하는 예시입니다!
옵셔널은 열거형으로 구현이 되어 있기에,
some과 none이 존재하고
some case의 연관값 부분에는
값이 들어갈 수 있습니다!
그래서 some case의 연관값에서
바인딩을 해주고 있습니다!
주석으로 설명을 드려놓았듯이,
let vanilla = coffee
즉, vanilla에 coffee가 할당이 된다면
coffee변수에 값이 존재한다면
print함수를 실행하는 코드입니다!
그다음
옵셔널 패턴의 예시를 보여드리겠습니다!
위의 예시는 옵셔널 패턴의 예시입니다!
열거형 case 패턴보다 간단해 보이죠?
위에서 설명을 드렸다시피,
옵셔널 패턴은 열거형 case 패턴을 간소화한 문법입니다!
쉽게 말씀드리면
⭐️ 열거형 case 패턴의 .some을 ? (물음표)로 대체가 가능한 패턴입니다! ⭐️
예시를 설명을 드리자면
열거형 case 패턴의 .some(let vanilla) -> 옵셔널 패턴의 let vanilla?
이런 식으로 간소화한 것입니다!
그래서 옆에 주석으로
let vanilla? = Optional.some(coffee)로 해놓은 것이고
공통된 부분을 지운다고 하면
? (물음표)는 옵셔널을 의미하니까
오른쪽 항에서 Optional.some 부분을 지울 수 있습니다!
그래서 결국
⭐️ let vanilla = coffee ⭐️
이렇게 되는 것이죠!
그럼 왜?
옵셔널 패턴을 사용을 할까요? 🧐
정말 간단한 이유입니다!
불편함을 없애기 위함이에요!
간소화가 가능한데,
굳이 더 불편하게 사용할 이유가 없습니다!
그리고 옵셔널 패턴의 경우에도
특정 case만 다룰 수 있습니다!
조건문과 반복문의 사용도 가능하다는 말입니다!
이전 포스팅에서 배웠죠??
간단하게 if문으로 다시 보여드리겠습니다!
이런 식으로 사용이 가능합니다!
위처럼 if문으로 특정 case만 다룰 수도 있는데,
결국 위와 같은 예시는
if let바인딩과 똑같습니다! 😁
그래서 제가 보여드린 예시처럼
옵셔널 패턴을 사용하셔도 되고,
if let바인딩으로 사용하셔도 됩니다!
둘 다 동일한 코드이니, 더 편하신 방법으로 사용하시면 좋을 것 같습니다!
오늘의 내용을 한눈에 볼 수 있도록 정리를 해보자면
옵셔널 패턴은
옵셔널 타입에서 열거형 case 패턴을 간소화한 문법이고,
열거형 case 패턴의 .some부분을 생략하고
? (물음표)를 붙여서 사용하는 패턴입니다!
switch문뿐만 아니라,
특정 케이스를 다루고 싶을 때
조건문과 반복문의 사용도 가능하다!라는 걸 기억해두세요!
오늘 내용은 지난 포스팅을 잘 배우셨다면,
솔직히 정말 이해가 쉬우셨을 겁니다!
글이 길더라도,
차근차근 읽어보신다면
충분히 오늘 내용도 도움이 되실 거라고 생각합니다! 🔥
오늘 준비한 내용은 여기까지 입니다!
쉬운 내용이면서도, 헷갈릴 수 있는 내용이라서
더 열심히 공부하면서 작성했습니다!! 🔥
제 글을 통해서 많은 분들이 좋은 정보 가져가셨으면 좋겠습니다!
열거형의 내용은 이번 포스팅으로 마치고,
다음에는 더 좋은 정보와 재밌는 내용 들고 오겠습니다!
감사합니다!
피드백 언제나 환영합니다!
'Swift' 카테고리의 다른 글
클래스(Class)와 구조체(Struct)의 특징과 차이점 정복하기 - 2장 (0) | 2022.06.24 |
---|---|
클래스(Class)와 구조체(Struct)의 특징과 차이점 정복하기 - 1장 (0) | 2022.06.23 |
열거형(Enumeration) 정복하기 - 3장 (0) | 2022.06.01 |
열거형(Enumeration) 정복하기 - 2장 (0) | 2022.05.30 |
열거형(Enumeration) 정복하기 - 1장 (0) | 2022.05.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- Type Methods
- 원시값
- 프로퍼티 옵저버
- Swift Methods
- optional unwrapped
- 저장 타입 프로퍼티
- SWiFT
- 옵셔널
- 저장 타입 속성
- Property Observers
- Instance Methods
- optional unwrapping
- optional
- 열거형 case 패턴
- 스위프트
- Optional pattern
- 클래스 구조체 차이
- 서브스크립트
- 열거형
- enum
- 옵셔널 추출
- 옵셔널 바인딩
- 속성 감시자
- 연관값
- 스위프트 메서드
- Swift enum
- Swift Instance
- swift struct
- swift class
- 옵셔널 패턴