Swift 원본 읽 기: optional 데이터 구조 및 초기 화
본 고 는 개인 적 으로 Swift 오픈 소스 코드 에 대한 탐색 을 바탕 으로 정확 하지 않 고 수시로 업데이트 할 수 있 으 며 잘못된 부분 이 있 으 면 지적 해 주 십시오!
Optional 형식 데이터 구조 부분 끌 어 내기:
enum Optional : ExpressibleByNilLiteral {
case none //
case some(Wrapped) // The presence of a value, stored as Wrapped.
}
이 를 통 해 알 수 있 듯 이 Optional 은 실제 적 으로 매 거 진 유형 으로 ExpressibleByNil Literal 협 의 를 따 랐 다.
init(nilLiteral: ()) // Creates an instance initialized with nil.
옵션 이 이 합 의 를 준수 하 는 이 유 는 다음 에 언급 할 것 이다.
public init(_ some: Wrapped) { self = .some(some) }
public init(nilLiteral: ()) {
self = .none
}
optional. none: 값 이 부족 하 다 는 뜻 입 니 다.선택 가능 한 형식 은 ExpressibleByNilLiteral 프로 토 콜 에 따라
init(nilLiteral: ())
이 루어 졌 습 니 다. nil 로 인 스 턴 스 를 초기 화 할 때 컴 파일 러 는 이 함 수 를 'none' 으로 호출 합 니 다.이것 이 바로 선택 할 수 있 는 유형 을 nil 로 초기 화 할 수 있 는 이유 입 니 다.var i: Index? = nil
우리 가 선택 할 수 있 는 값 을 설명 하지만 값 을 부여 하지 않 았 을 때 컴 파일 러 도 자동 으로 nil 로 설정 합 니 다.optional. some: 소 포 된 값 이 있 음 을 의미 합 니 다.보 실 수 있 습 니 다. some 매 거 진 값 은 Wrapped 와 관련 된 값 을 가지 고 있 습 니 다. 소 포 된 값 은 여기에 있 습 니 다.그렇다면 Wrapped 는 무엇 일 까요? 제 가 여기 서 찾 은 Wrapped 로 의심 되 는 성명 을 보면 Wrapped 는 실제 협의 입 니 다.
getValue
협의 준수 자가 실제 저 장 된 값 을 얻 을 수 있 도록 확 보 했 습 니 다. 실현 은 아직 밝 혀 지지 않 았 습 니 다.public protocol Wrapped {
associatedtype Value : Equatable
//var value : Value
func getValue() -> Value
}
다음 편 에 서 는 연산 자의 실현 을 볼 예정 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.