gpt4 book ai didi

swift - Swift 中的函数数组

转载 作者:IT王子 更新时间:2023-10-29 05:12:12 24 4
gpt4 key购买 nike

如何像在 JavaScript 中那样存储一组函数以便稍后在数组中回调? Any 和 AnyObject 类型不能包含具有不同类型方法签名的函数。

最佳答案

您可以使用枚举将各种函数放入数组中,然后使用开关提取函数。

    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 - Swift 中的函数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24418951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com