gpt4 book ai didi

swift - 当函数具有不同签名时将函数作为参数传递

转载 作者:行者123 更新时间:2023-11-30 12:15:32 26 4
gpt4 key购买 nike

我红色了很多答案,但我找不到我的问题的明确答案。

在 Swift 中,我有 3 种(或更多)不同的方法。它们唯一的共同点是它们的返回类型,例如。

A(a:String)->MyType
B(a:Int,b:String,c:AnyObject,d:Whatever)->MyType
C(a:Int,b:String,c:Other)->MyType

我需要将函数作为类方法的参数传递,例如。

myClass.configureIOTDevice(configFile:String, functionToCall:A)

然后,在这个方法的主体内我想调用:

functionToCall()

正如你所看到的,出现了一个问题:如何传递不同签名所需的参数?

任何帮助,提示,为什么不,烂番茄表示赞赏:-)

最佳答案

你可以这样走

func getData( functionToCall : Any) {
if let function = functionToCall as? ()-> Void {
function()
}
else if let function = functionToCall as? (String, String) -> Int {
let result = function("a","b")
}
}

关于swift - 当函数具有不同签名时将函数作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45480346/

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