1
我有一个协议Points
,该方法应该返回一个有序的Point
实例序列。在Swift中返回一个序列3
我会返回一个数组,但我可以返回更多的东西通用的,这样的Points
实现不需要在将数据复制到一个数组中?
我试着这样做:
protocol Points {
var points: Sequence {get}
}
但得到的错误:
Protocol 'Sequence' can only be used as a generic constraint because it has Self or associated type requirements
在我读到SequenceOf
旧的问题,但是这似乎并没有在斯威夫特3.
下面是Points
协议的示例实现:
extension PointSetNode: Points {
var points: ?????? {
return children.map{$0.points}.joined()
}
}
...这里,children
是一个数组。
比较https://stackoverflow.com/q/33843038/2976878 - 你想'AnySequence',这是相当于Swift 1的'SequenceOf'。 – Hamish
可爱,是的,就是这样。你想做出答案吗?否则,我很乐意自我回答。 – Benjohn
嗯,我会说不如刚刚接近愚蠢 - 但如果你觉得添加自我回答将是有益的,去吧:) :) – Hamish