[Swift] 옵셔널(Optional)에 대해 알아보자 (1) - 기본편

안녕하세요~ 차니에요!

 

오늘은 옵셔널(Optional)에 대해 알아볼거에요.

관련 내용이 많아서 시리즈로 작성하도록 하겠습니다!

 

1. 옵셔널이란 무엇인가?

Optional은 nil을 사용할 수 있는 타입인지 아닌지를 구분하기 위해 사용합니다

  • nil을 사용할 수 있는 type을 Optional Type
  • 반대로 nil을사용할 수 없는 type을 Non-Optional Type이라고 지칭합니다.

글만 보면 잘 와닿지 않을테니 간단한 예제를 통해 알아보도록 하겠습니다.

2. Non-Optional Type, Optional Type

Non-Optional Type

첫 번째로 Non-Optional Type 입니다.

nil은 Optional Type에서만 사용 가능하다고 했죠?

예제를 보면 일반 String에 nil을 대입하려고하니 에러가 나는 모습입니다.

 

Optianl Type

두 번째로 Optional Type 입니다.

옵셔널 타입은 위와 같이 자료형 뒤에 ?를 붙혀주면 됩니다.

이제 season 변수에는 nil 값을 저장 할수 있게됩니다.

 

3. Non-Optional Type vs Optional Type

nil의 사용 유무에 따라 나눠진다는건 알겠고, 그렇다면 둘은 어떤 차이가 있을까?

season 변수(Non-Optional Type)의 자료형(type)을 출력해보니 String Type 입니다.
season 변수(Optional Type)의 자료형(type)을 출력해보니 Optional<String> Type 입니다.

처음 형태는 일반적인 String Type이고 두 번째는 Optional String Type입니다.

 

근본적으로 자료형(Type)이 다릅니다.

Swift에서 String Type과 Optional String Type은 다른 자료형(Type)입니다.

 

Optional은 자료형을 감싸고 있는 포장지 정도로 생각을 하시면 되는데 이 포장지에서 값을 꺼내오는 과정을 Optional Unwrapping이라고 합니다.

 

그렇다면 다음 시간에는 Optional Type 변수에서 값을 어떻게 언래핑하는지 알아보도록 할게요!!