Search
Duplicate

(Swift) Optional Binding, Chaining, and the Nil Coalescing Operator

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Swift
Scrap
태그
9 more properties

Optional Type

스위프트에는 Optional type이 존재한다. 해당 타입에 대해 궁금하다면 아래 게시글을 보자!
Optional type를 사용할 때, Optional value가 아니라 딱 원하는 value를 사용하려면 !를 통해서 Forced Unwrapping을 해주어야 했다. 하지만 항상 새로 선언할 때마다 !붙여야하고 매번 이것을 신경쓰려면 여간 불편한게 아니다.
그래서 이 Optional type을 처리하는 다양한 방법들을 알아보고 가장 편한 방법을 사용해보자.

1. if value ≠ nil

Optional type에 대한 게시글에서도 나오듯이 if문을 통해 안전한 프로그래밍을 할 수 있다.
if optionalString != nil{ print(optionalString!) }
Swift
복사

2. optional binding

optional binding을 사용하면 일반적인 if 구문보다 편하게 사용할 수 있다. 기본적인 문법은 아래와 같다.
if let safeValue = optionalValue { safeValue }
Swift
복사
if let 뒤에 새로운 변수를 하나 선언하고 optionalValue를 대입한다. 이 때, optionalValuenil이 아닐 때에만 safeValue에 값이 대입된다. 이렇게 만든 safeValue는 선언한 지역이 끝날 때 까지 사용가능하다.

3. nil coalescing operator

nil coalescing operator를 사용하면 아주 간편하게 문제를 처리할 수 있다. 우리가 다른 언어에서 자주 사용하던 삼항 연산자와 비슷하게 생겼다. 기본적인 문법은 아래와 같다.
optionalValue ?? defalutValue
Swift
복사
optionalValue 뒤에 ??를 붙이고 nil인 경우 할당할 defaultValue를 적어주면 된다. 아래와 같이 사용할 수 있다.
let text: String = myOptional ?? "i am default"
Swift
복사

4. optional chaining

Optional class 혹은 Optional Struct의 내부 메서드나 변수에 접근해야 하는 상황이 있을 수 있다. 이런 상황에서 optional chaining을 사용할 수 있다.
optional?.property optional?.method()
Swift
복사
실제 코드에서 사용되는 예시를 살펴보자. Optional chaining과 nil coalescing operator를 활용해서 가독성 좋고 짧은 코드를 만들 수 있다.