2016-10-11 5 views
-2

Вот метод карты, который, кажется, дублируется в протоколе Sequence. Как это делает яблоко? Какова цель этого?Как быстро разрешить такой же метод в расширении протокола и протокола?

public protocol Sequence { 
public func map<T>(_ transform: (Self.Iterator.Element) throws -> T) rethrows -> [T] 
} 

extension Sequence { 
public func map<T>(_ transform: (Self.Iterator.Element) throws -> T) rethrows -> [T] 
} 
+0

Посмотрите на расширения протоколов на [Быстрый язык программирования] (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html). – ABakerSmith

+0

Потому что так работают протоколы. Это похоже на вопрос, почему футбольное поле имеет длину 100 ярдов: это правила игры. – matt

ответ

0

Последовательность протокола как требуетmap функции и (с использованием расширения протокола) обеспечивает реализацию по умолчанию для него. Такими расширениями протокола являются для.

+0

Спасибо. Имеет смысл. – user3869369