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