使用 Xcode 8 beta,swift 3 第二个扩展无法编译。我不明白这是一个快速的错误还是一个已知的限制。
extension Array {
func scanl<T>(initial: T, combine:(Iterator.Element, T) -> T) -> [T] {
guard let first = self.first else { return [] }
return [initial] + Array(self.dropFirst()).scanl(initial: combine(first, initial), combine: combine)
}
}
extension Array {
func scanl<T>(combine: (Iterator.Element, T) -> T) -> [T] {
guard let first = self.first else { return [] }
return Array(self.dropFirst()).scanl(initial:first, combine:combine)// Cannot convert value of type '(Element, T) -> T' To expected argument type '(_, _) -> _'
}
}
(Element, T) -> T 确实是函数的类型。所以我不明白为什么编译器期望 ( , ) -> __ 以及除了“我不关心类型”之外,这种类型是什么意思