Swift中的函数数组

前端之家收集整理的这篇文章主要介绍了Swift中的函数数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何存储一个函数数组,以便稍后在JavaScript中的数组中回调? Any和AnyObject类型不能保存具有不同类型的方法签名的函数
您可以使用枚举将各种功能放入Array中,然后使用开关提取功能
enum MyFuncs {
        case Arity0 ( Void -> Void )
        case Arity2 ( (Int,String) -> Void)
    }

    func someFunc(n:Int,S:String) { }
    func boringFunc() {}
    var funcs = Array<MyFuncs>()
    funcs.append(MyFuncs.Arity0(boringFunc))
    funcs.append( MyFuncs.Arity2(someFunc))

    for f in funcs {
        switch f {
        case let .Arity0(f):
            f()  // call the function with no arguments
        case let .Arity2(f):
            f(2,"fred") // call the function with two args
        }
    }

猜你在找的Swift相关文章