안녕하세요 cows입니다 🐂🐂ㅎㅎ
오늘은 더 가벼운 내용이에여
거의 날로먹는 내용이라
따로 포스팅을 해야 하나 했는데
뭐 꼭 한군데 몰아서 포스팅 할 필요는 없잖음!?
누군간 정말 이 개념만 궁금해서
서치를 했을 수도 있구 하핫
오늘 내용은
??
오늘 내용 뭐냐고 묻는 거 아님
?? 문법에 대해 공부할 것임
여러분 이 연산자 다들 아무렇지 않게 쓰지만
이름도 모르고 쓰시는 분들 많은 거 다 앎
한낱 연산자라도 이름을 불러주어야 나에게로 와 꽃이 되는 것임 (문과출신)
쨌든 풀 네임은
Nil-Coalescing Operator
닐-코얼레이싱
친절하게 발음도 써드립니다
1. Nil-Coalescing Operator
이 문법을 사용하면 말이지
Optional Type 표현식에 값이 저장되어 있는지 확인하고 꺼낼 필요가 없어짐
Syntax부터 보셈
요런 느낌임
저렇게 보니까 먼말인지 도통 모르겠네
예제를 보면 쉬움
자 Optional String Type인 name이 있음
이때,
name이 nil이 아닐 경우 -> hello, \(name)
name이 nil일 경우 -> hello, what's your name?
이런 메세지를 출력하고 싶음
기존 옵셔널 바인딩을 이용하면
이렇게 구현했을 거 아님?
근데 Nil-coalescing을 이용해서 다음과 같이 간단하게 만들 수 있음
한 줄로 끝!!~~~
아이 간단하다~~~~
메커니즘은
① name에 값이 있을 경우
② name에 값이 없을 경우 (nil)
오른쪽 피연산자는 보통 값이 없을 때 사용할 default를 정의함
.
.
주의할 점은
Nil-Coalescing에 사용되는 Optional Type과 Non-Optional Type은
Optional을 제외하면 동일한 Type이어야 함
ex) Optional String Type ?? Non-Optional String Type (O)
Optional String Type ?? Non-Optional Int Type (X)
쩝..
약간 삼항 연산자 같은 느낌 나지 않음??
너무 쉬워서 별도의 설명은 더 안 하겠음!!
-끗!!!!!-
피드백 환영합니다 :)
'iOS > Swift' 카테고리의 다른 글
Swift) Optional 부수기 (6) - Optional Chaining (옵셔널 체이닝) (9) | 2020.09.24 |
---|---|
Swift) 튜플(Tuple)에 대해 알아보자 (4) | 2020.09.22 |
Swift) Optional 부수기 (4) Optional Unwrapping - IUO (옵셔널 묵시적 추출) (5) | 2020.08.03 |
Swift) COW (Copy-on-Write) (8) | 2020.07.31 |
Swift) Optional 부수기 (3) Optional Unwrapping - 옵셔널 바인딩(if let vs guard let) (18) | 2020.07.28 |