swift - 在 Swift 中使用默认参数获取对实例变量的引用

标签 swift function default-parameters

因此,给出以下代码,如何获取对采用默认值参数的函数的引用并调用具有默认值的引用?

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/

相关文章:

ios - 如何使用 PHPhotoLibrary 获取照片的日期

swift - 对于 supportedInterfaceOrientations(),Int 不能转换为 UIInterfaceOrientationMak

swift - 对 swift 中的选项有点困惑

json - 如何在 Swift 4.1 中将混合值类型字典编码为 JSON

c++ - 返回 'auto' 的函数在定义之前不能使用

c++ - 函数声明在类范围之外但不是友元。这是如何运作的?

c++ - 构造函数默认参数

javascript - 函数参数中的数组解构

swift - 传入值为 nil 的函数参数的默认值

python - "Least Astonishment"和可变默认参数