序列的协议所需的方法
问题描述:
序列的协议序列的协议所需的方法
是夫特协议,因此所有它是所需要的方法。
考虑看看它的声明,我现在已经看到有很多的方法,比如
makeIterator(), map(), filter()
等等...
我不知道为什么只
makeIterator()是必需的
方法。
这不是一个@objc协议与可选关键字,它不是协议的扩展名,它不符合任何其他协议。这是一种简单的Swift协议。
有什么想法?
序列的协议序列的协议所需的方法
是夫特协议,因此所有它是所需要的方法。
考虑看看它的声明,我现在已经看到有很多的方法,比如
makeIterator(), map(), filter()
等等...
我不知道为什么只
makeIterator()是必需的
方法。
这不是一个@objc协议与可选关键字,它不是协议的扩展名,它不符合任何其他协议。这是一种简单的Swift协议。
有什么想法?
“这不是一个协议的扩展名” - 不,“Sequence”确实为其余的需求提供了默认实现,例如'map' [默认实现在这里](https://github.com/apple/) swift/blob/da069590de164b7d4a0355cd621dc7153869c70d/stdlib/public/core/Sequence.swift#L831),'filter'的[默认实现在这里](https://github.com/apple/swift/blob/da069590de164b7d4a0355cd621dc7153869c70d/stdlib/public /core/Sequence.swift#L867)。请注意,当序列是自己的迭代器时,还有'makeIterator()'的默认实现。 – Hamish
哦,伙计!我正在寻找在同一个文件中的默认实现,但我无法找到它。事实上,我已经写道,它不是协议的扩展,因为我在该文件中找到了默认实现。非常感谢! – ndPPPhz
@Hamish看起来像一个完全有效的答案,为什么不张贴呢? – Alladinian