問(wèn)題
最近在看函數(shù)式編程這本書(shū)植捎,在圖表這一章時(shí)發(fā)現(xiàn)了一個(gè)錯(cuò)誤,代碼如下:
extension Sequence where Iterator.Element == CGFloat {
func normalize() -> [CGFloat] {
let maxVal = self.reduce(0) { max($0, $1) }
return self.map { $0 / maxVal }
}
}
錯(cuò)誤:
解決方法
原因是在閉包里面編譯器自動(dòng)識(shí)別的是本地的函數(shù),沒(méi)有在標(biāo)準(zhǔn)庫(kù)中搜尋這個(gè)函數(shù)旗芬,添加一個(gè)Swift就可以解決這個(gè)問(wèn)題瘤睹。詳細(xì)的可以在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 }
}
}