옵셔널에 대해서 알기 전에 먼저 nil에 대해서 알아야 한다.
nil
nil이란 다른 언어의 null과 같은 것이다.
즉, 아무런 값이 아닌 값이다.
다른 언어들과 달리 Swift는 변수나 상수에 nil을 할당할 수 없다.
하지만 방법이 있다.
바로 변수나 상수를 옵셔널로 만드는 것이다.
Optional
옵셔널은 변수나 상수에 어떠한 값이 할당되지 않는 상황을 안전하게 처리하기 위한 방법이다.
옵셔널 지정해주면 nil값을 가질 수 있다.
만일, 옵셔널 변수나 상수에게 어떠한 값도 할당하지 않았을 때 자동으로 nil로 초기화가 된다.
옵셔널은 기본 데이터 타입들에 모두 붙을 수 있다.
옵셔널 변수나 상수로 만들려면 선언을 해야 하는데 변수를 선언할 때 타입 어노테이션 뒤에 ' ? '를
붙여주면 된다.
선언한 옵셔널 변수에 값을 할당하는 방법은 일반 변수나 상수에 값을 할당하는 것과 동일하다.
그렇게 해서 옵셔널 변수를 출력해보면 ' Optional(값) '이 출력된다.
이 값은 옵셔널로 감싸져 있다는 것인데, 사용하려면 강제 언래핑 ( forced unwrapping )을 해주어야 사용할 수 있다.
1. ! 언래핑
변수 뒤에 ' ! '를 붙여주면 해당 데이터 타입으로 값이 반환된다.
만일 정수형 타입에 문자열 타입을 할당하고 언래핑하면 반환할 수 없다는 의미로 nil을 반환한다.
2. 옵셔널 바인딩
옵셔널 변수에 할당된 값을 다른 변수나 상수에 잠시 할당하는 방법이다.
옵셔널 변수에 값이 있다면 언래핑하여 상수나 변수에 대입한다.
언래핑된 값은 if문 블록 안에서만 유효한다.
만일, 값이 없다면 if문의 조건이 거짓이 되어 실행이 되지 않는다.
옵셔널을 사용하는 이유
1. 옵셔널 타입만이 값을 갖지 않는다는 의미의 nil 값을 가질 수 있다.
2. 어떠한 값도 할당되지 않았을 때 자동으로 nil로 초기화가 된다
참고
# 본 글은 작자가 어떠한 개념을 본인의 것으로 만들기 위해 주관적인 해석과 견해가 있음을 알립니다.
'공부' 카테고리의 다른 글
[JSP/Spring] Tomcat log 깨짐 문제 (0) | 2020.09.13 |
---|---|
[JSP] Gradle Web application 시작하기 (0) | 2020.09.13 |
[CI] CodeIgniter 디렉터리 구조 (0) | 2020.09.12 |
[스프링] MVC 패턴이란 ? (0) | 2020.09.12 |
[스위프트] 스위프트란 ? ( 스위프트 기초 문법 1) (0) | 2020.09.11 |
댓글