Swift:无法使用类型'(@noescape(Int)throws – > Bool)的参数列表调用’filter’

我遇到了这个错误:

func compactCoords(coords: [Int]) -> [Int]{
    return coords.filter({ (value) -> Bool in
        return value != 0
    })
}

无法使用类型为'(@noescape(Int)throws – > Bool)’的参数列表调用’filter’

谢谢你的帮助!

最佳答案 您的代码在Xcode 7.1中运行良好.您可能不小心尝试在Xcode 6.x中运行此代码?

你可以像这样缩短你的功能:

func compactCoords(coords: [Int]) -> [Int] {
    return coords.filter { $0 != 0 }
}

输出:

let coords = [1,2,3,0,4,5,6]
let compactedCoords = compactCoords(coords) // [1, 2, 3, 4, 5, 6]
点赞