类型推断如何与可选项一起工作?

How does type inference work with optionals?

我有一个这样的功能:

func click(sender:UIButton?) {
//some code
}

我想像这样调用该函数:

 - click() // ERROR: Missing argument for parameter #1 in call
 - click(btn) // works
 - click(nil) // works

我已经阅读了 问题,但我仍然很困惑默认情况下不是可选的 nil 这不是可选的整个想法吗?为什么我不能只做 click() ?

仅供参考,我知道我可以将方法签名更改为 func click(sender:UIButton? = nil),然后 click() 会起作用,但不知何故这似乎是多余的,就像重述 已经 已知为默认

你问的是两件不同的事情:

  • 一个可选的类型,即nil by default

    var button : UIButton?
    
  • 可选的 函数参数 通过传递默认 nil

    func click(sender:UIButton? = nil)