2015-11-02 21 views
4

我堅持這個錯誤:斯威夫特:無法調用「過濾器」類型的參數列表「(@noescape(INT)拋出 - >布爾)」

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

不能調用「過濾器」與參數列表類型'(@noescape(Int)throws - > Bool)'

感謝您的幫助!

+1

爲了幫助你在這裏我需要更多的上下文。你如何調用這個函數?上一次我有這個錯誤,我試圖將返回的過濾函數數組應用到一個集合。所以也許你會因爲你調用這個函數的方式而得到錯誤... –

+0

Tony Stark謝謝。這幫助了我。 :) –

回答

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] 
相關問題