gpt4 book ai didi

objective-c - Swift - 获取对具有相同名称但不同参数的函数的引用

转载 作者:行者123 更新时间:2023-11-30 11:41:43 25 4
gpt4 key购买 nike

我正在尝试获取对这样的函数的引用:

class Toto {
func toto() { println("f1") }
func toto(aString: String) { println("f2") }
}

var aToto: Toto = Toto()
var f1 = aToto.dynamicType.toto

我有以下错误:toto 的使用不明确

如何获取具有指定参数的函数?

最佳答案

由于 Toto 有两个名称相同但签名不同的方法,您必须指定您想要哪一个:

let f1 = aToto.toto as () -> Void
let f2 = aToto.toto as (String) -> Void

f1() // Output: f1
f2("foo") // Output: f2

或者(正如@Antonio正确指出的那样):

let f1: () -> Void     = aToto.toto
let f2: String -> Void = aToto.toto

如果您需要将类的实例作为柯里化(Currying)函数那么第一个参数您可以按照相同的方式进行,只是签名不同(将@Antonios 评论与您的​​问题进行比较):

let cf1: Toto -> () -> Void       = aToto.dynamicType.toto
let cf2: Toto -> (String) -> Void = aToto.dynamicType.toto

cf1(aToto)() // Output: f1
cf2(aToto)("bar") // Output: f2

关于objective-c - Swift - 获取对具有相同名称但不同参数的函数的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49225112/

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