[swift] Optional 뜯어보기
[swift] Optional 뜯어보기 swift에서 데이터를 저장하는 곳을 변수라고 하는데, 이 변수에 아무것도 들어있지 않은 상태를 표현해야 할 일이 있습니다. 0이 아니고 빈 문자열("")도 아닌 아무것도 없는 것. 변수에 아무것도 할당 되어있지 않은 것을 스위프트에서는 참을 수 없으니까요! 아무것도 들어있지 않다라는 것이라도 넣어 둡시다. 이때 사용되는 것이, 없다 라는 오브젝트인 nil입니다. 변수에 아무 값도 들어있지 않다는 뜻 입니다. 사용 법 정의 타입 뒤에 ?를 붙여주면 옵셔널타입 이라는 뜻 입니다. var name: String? = "leeo" print(name!) // leeo name = nil print(name!) // error 이렇게 사용가능합니다. 조금 더 자세히 살펴보면 var name: String? = "leeo" 이 코드에서 타입이 String?임을 알 수 있습니다. 정확히는 이런 뜻 입니다. var name: Optional<String> 왜냐하면 typealias String? = Optional<String> var name: String? 이렇게 한 것과 같은 의미기 때문이죠. 그렇다면 Optional 을 까보고 똑같이 구현해 보도록 하겠습니다. public enum CustomOptional<Wrapped>: ExpressibleByNilLiteral { case none case some(Wrapped) public init(nilLiteral: ()) { self = .none } public init(_ some: Wrapped) { self = .some(some) } } extension CustomOptional: CustomDebugStringConvertible { public var debugD