0
可以說我想擁有一個函數數組(閉包),我稍後想要分派。我希望所有閉包都可以將任何類型的數組作爲單個參數。在Swift中存儲數組中不同類型的閉包
我想:
var closureList: [(Array) -> Void]
這給出了一個編譯器錯誤:引用泛型類型「數組」要求論點< ...>
我不想貯存一定的封閉陣列,但任何類型的數組的類型,所以我嘗試這樣做:
protocol GeneralArray {
}
extension Array: GeneralArray {
}
var closureList: [(GeneralArray) -> Void]
這將編譯,但是當我嘗試添加一個閉合:
func intArrayFunc([Int]) -> Void {
}
closureList.append(intArrayFunc)
我得到一個編譯器錯誤:無法用類型爲'(([Int]) - > Void)'的參數列表調用'append'。
是否有一種方法在swift中存儲將數組中的不同類型作爲參數的閉包?
泛型。 (GeneralArray) - > Void是預期的,並且你正在傳遞(Int) - > Void。試試func intArrayFunc([GeneralArray]) - > Void。檢查這個http://stackoverflow.com/questions/29829763/how-to-define-array-of-closures-in-swift – jarryd