序列的协议所需的方法

问题描述:

序列的协议序列的协议所需的方法

是夫特协议,因此所有它是所需要的方法。

考虑看看它的声明,我现在已经看到有很多的方法,比如

makeIterator(), map(), filter() 

等等...

我不知道为什么

makeIterator()是必需的

方法。

这不是一个@objc协议与可选关键字,它不是协议的扩展名,它不符合任何其他协议。这是一种简单的Swift协议。

有什么想法?

+2

“这不是一个协议的扩展名” - 不,“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

+1

哦,伙计!我正在寻找在同一个文件中的默认实现,但我无法找到它。事实上,我已经写道,它不是协议的扩展,因为我在该文件中找到了默认实现。非常感谢! – ndPPPhz

+0

@Hamish看起来像一个完全有效的答案,为什么不张贴呢? – Alladinian

关于这个问题,Hamish为我们提供了合适的解决方案

它不是一个协议的扩展名” - 不,顺序也为它要求休息,提供默认 实现例如地图的默认 实现here ,过滤器的默认实现here注意 有也为makeIterator()的默认实现当 序列是它自己的迭代器。

我们可以找到makeIterator()默认执行here

真的很感谢!