【发布时间】:2016-03-11 22:12:34
【问题描述】:
我通过玩 Swift 集合来学习 Swift。我想创建自己的序列,我知道我必须遵守SequenceType 协议。
我应该如何知道我必须实现协议的哪些成员? Apple 文档显示了很多 SequenceType 协议 (http://developer.apple.com/library/mac/documentation/Swift/Reference/Swift_SequenceType_Protocol/index.html) 的方法,例如。 dropLast(_:Int)、generate()、underestimateCount()等
但事实证明我只需要提供generate() 方法并且编译器很高兴:
class MySequence : SequenceType {
func generate() -> MyGenerator{
return MyGenerator(total: 6)
}
}
(如果不是各种博客文章,我不知道必须实施哪些SequenceType 成员)
在符合协议的同时,如何确定需要实现哪个成员?
我看到有些方法标有Default implementation 标签。但是,例如,dropLast(_: Int) -> Self.SubSequence 没有标记这样的标签,我不必实现它。
【问题讨论】:
-
我猜那些没有标记
Default implementation的? -
@Stefan:我已经更新了这个问题。那么
dropLast(_:Int) -> Self.SubSequence方法呢? -
更新了我的答案来解决这个问题。
标签: swift