问题
最近在看函数式编程这本书,在图表这一章时发现了一个错误,代码如下:
extension Sequence where Iterator.Element == CGFloat {
func normalize() -> [CGFloat] {
let maxVal = self.reduce(0) { max($0, $1) }
return self.map { $0 / maxVal }
}
}
错误:
解决方法
原因是在闭包里面编译器自动识别的是本地的函数,没有在标准库中搜寻这个函数,添加一个Swift就可以解决这个问题。详细的可以在stackoverflow中可以看到
stackoverflow:https://stackoverflow.com/questions/39602298/swift-3-0-compiler-error-when-calling-global-func-mintt-t-in-array-or-dicti
extension Sequence where Iterator.Element == CGFloat {
func normalize() -> [CGFloat] {
let maxVal = self.reduce(0) { Swift.max($0, $1) }
return self.map { $0 / maxVal }
}
}