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

时间:2015-11-02 16:40:37

标签: swift

我遇到了这个错误:

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您的代码在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]