Optional Type과 열거형(enum)의 관계

썹스·2022년 10월 2일
0

Swift 문법

목록 보기
13/68

Optional Type과 열거형(enum)

사실 Optional은 연관값(associated value)을 갖는 열거형(enum)입니다....!?!?!😮

Optional은 Swift에서 내부적으로 아래와 같이 정의되고 있습니다.

public enum Optional <Wrapped>{    // <Wrapped>은 Generic 열거형으로 선언 한다는 의미
      case some(Wrapped)           // 값이 있는 경우
      case none                    // nil값 -> 값이 없는 경우
}

📌 .some(<Wrapped>)

Optional은 Swift에서 기본적으로 enum으로 구현되어 있기 때문에 아래와 같은 코드가 가능합니다.
Optional.some(<제너릭 데이터 타입의 값>)<데이터 타입>? = 값과 같은 표현방식입니다.

var a: Int? = 10
var A = Optional.some(10)

print(a)   //Optional<Int>
print(A)   //Optional<Int>

📌 .none

Optional은 Swift에서 기본적으로 enum으로 구현되어 있기 때문에 아래와 같은 코드가 가능하다.
Optional.none(<제너릭 데이터>)<데이터 타입>? 과 같은 표현방식입니다.

var b: String?
var B = Optional<String>.none

print(b)   //nil
print(B)   //nil

느낌점

우리가 사용하고 있는 옵셔널 타입(Optional Type)은 사실 열거형(enum) 타입이었습니다.

옵셔널 타입 외에도 개발자가 평소 자주 사용하는 타입(Int, String 등)들은 대부분 사용자에 의해 만들어지는 커스텀 타입(구조체, 클래스, 열거형)일 가능성이 높습니다.

Swift언어를 제작할 때 개발자의 편의를 위해 다양한 타입들을 미리 정의해 놓았기 때문에 개발자는 해당 타입의 자세한 내용까지는 알 필요가 없지만, 최소한 무슨 타입으로 정의 되었는 알고 있는 것이 좋다고 생각합니다. (확장 및 타입의 특징을 확실하게 이해하기 위해)

profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글