因此,给出以下代码,如何获取对采用默认值参数的函数的引用并调用具有默认值的引用?
class Test {
func doIt() { print("Done") }
func doIt(_ adjective: String = "better") {
print("Done \(adjective)")
}
}
let t = Test()
let fn1 = t.doIt as () -> Void
let fn2 = t.doIt as (String) -> Void
fn1() // Works
fn2() // Does not work; requires parameter
我还尝试了以下
let fn2 = t.doIt as (String?) -> Void
但这也行不通。有任何想法吗?我想调用 fn2()
并获取打印结果 “做得更好”
最佳答案
我想你已经得到了你想要的,即对该函数的引用。
由于类型为 (String) -> Void
,因此它需要 String
作为输入。所以你必须传递它来调用。
关于swift - 在 Swift 中使用默认参数获取对实例变量的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51335978/