티스토리 뷰

Swift

Optional - 기능 4가지

강경 2020. 12. 12. 00:00
728x90
반응형

박스를 뜯는 경우를 생각해보자

(매우 자연스럽고 적합한 비유의 예제는 아니다 ..)

 

1. [Forced unwrapping] 인정사정없이 박스를 강제로 뜯는다

내용물이 있으면 정상이지만, 내용물이 없는경우 컴파일 에러가 발생하게 된다.

 

2. [Optional binding (if let)] 부드럽게 박스를 개봉한다

컴파일에러는 발생하지 않지만, if문이 다중으로 쓰이므로 deps level이 깊다.

이는 Cyclomatic Complexity가 높은(복잡성이 높은) 코드다.

 

3. [Optional binding (guard)] 부드럽게 박스를 개봉한다

if를 하나 줄였으므로, 이전 코드보다는 복잡성이 줄어들었다.

 

4. [Nil coalescing] 박스를 개봉했을 때, 비어있으면 디폴트 값을 준다

이건 예시가 좀 잘못 됐는데 ...

박스가 비어있으면, '??'연산자 뒤의 값이 해당 상수에 저장된다고 이해하면 된다 ..

 

괜히 비유하려고 노력했다가 더 꼬여버렸다 ...

728x90
반응형

'Swift' 카테고리의 다른 글

Collection - Dictionary  (0) 2020.12.14
Collection - Array  (0) 2020.12.14
Optional  (0) 2020.12.11
Function - 고급기능  (0) 2020.12.11
Function 복습  (0) 2020.12.11