스위프트 프로토콜은 다른 프로토콜 방법 및 속성으로 정의 된 기본 구현으로 볼 수있는 확장을 허용합니다. 때로는 이러한 확장에 첨부 된 조건이 있지만 때로는 와일드 카드 일뿐입니다. 따라서 이 실제로을 프로토콜을 준수하는 객체에 구현해야하는지 파악하기가 약간 어렵습니다. 네 다음 스위프트 (Swift) : 어떤 프로토콜 방법과 속성을 실제로 구현해야하는지 파악하고 있습니까?
public func generate() -> Self.Generator
public subscript (position: Self.Index) -> Self.Generator.Element { get }
public subscript (bounds: Range<Self.Index>) -> Self.SubSequence { get }
public func prefixUpTo(end: Self.Index) -> Self.SubSequence
public func suffixFrom(start: Self.Index) -> Self.SubSequence
public func prefixThrough(position: Self.Index) -> Self.SubSequence
public var isEmpty: Bool { get }
public var count: Self.Index.Distance { get }
public var first: Self.Generator.Element? { get }
그러나 실제로
이 모든 것이 이미 제외 와일드 카드 확장에 정의되어있다 : 예를 들어,CollectionType
명목상 메서드 및 속성을 구현 한 다음 (최상위)가 필요
public func generate() -> Self.Generator
public subscript (position: Self.Index) -> Self.Generator.Element { get }
public subscript (bounds: Range<Self.Index>) -> Self.SubSequence { get }
public var count: Self.Index.Distance { get }
심지어이 중에서도 특정 경우에 subscript (bounds: Range<Self.Index>)
및 generate()
이 제공됩니다.
어떤 프로토콜 방법과 속성이 이 아닌지 한눈에 알 수있는 방법이 있습니까?은 확장으로 정의되어 있습니까?