【发布时间】:2016-09-26 14:54:58
【问题描述】:
我想要一个接受Int 序列的函数。这是我想写的:
func process(items: Sequence<Int>) {
items.forEach { ... }
}
错误:“无法专门化非泛型类型‘序列’”。
更正(我认为):
func process<S: Sequence>(items: S) where S.Iterator.Element == Int {
items.forEach { ... }
}
有点冗长。
我知道序列协议有一个关联类型为Iterator,它有Element。但我不太清楚为什么我必须以这种奇怪的方式解决Int 的要求。
使第一个版本不起作用但第二个版本起作用的基本概念是什么?错误是什么意思?
【问题讨论】:
-
func process(items: Int) -> Sequence
{ }