래핑된 값 혹은 nil 을 표현할 수 있는 타입
nil 은 값이 없음을 표현한다
내부적으로 제네릭 열거형으로 구현되어있다
@frozen
public enum Optional<Wrapped>: ExpressibleByNilLiteral {
case none
case some(Wrapped)
/// Creates an instance that stores the given value.
@_transparent
public init(_ some: Wrapped) { self = .some(some) }
...