什么是可以在Swift中保存函数数组的数据结构的类型

时间:2014-06-11 01:35:07

标签: swift

我想创建一个可以容纳一系列函数的数组。我在执行以下操作时遇到编译错误

func newMethod() {

}
var funcs: Any[] = []
funcs += newMethod // Compile error "Could not find overload for += ..."

1 个答案:

答案 0 :(得分:0)

这有效:

func newMethod() {

}

var funcs: Any[] = []
var method : () -> (Void) = newMethod;
funcs += method;

var method : ()创建一个新的变量方法,其类型为() -> (Void),类型为newMethod。然后,您可以将其添加到数组中。

您还可以添加具有可变参数的函数:

func variadicMethod(numbers: Int...) -> (Int){
    //do something and return an Int
}]



var variadicMethod : (Int...) -> (Int) = variadicMethodForAdding
funcs += variadicMethod