【发布时间】:2018-12-22 11:24:56
【问题描述】:
那么给定下面的代码,如何获取一个函数的引用,该函数接受一个带有默认值的参数并调用带有默认值的引用?
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() 并得到打印结果"Done better"
【问题讨论】:
-
fn2是一个闭包,闭包的参数不能有默认值。
标签: swift function default-parameters