Swift 类型推断如何与optionals一起工作?

Swift 类型推断如何与optionals一起工作?,swift,optional,Swift,Optional,我有这样一个函数: func click(sender:UIButton?) { //some code } - click() // ERROR: Missing argument for parameter #1 in call - click(btn) // works - click(nil) // works 我想这样称呼func: func click(sender:UIButton?) { //some code } - click() // ERROR: Missi

我有这样一个函数:

func click(sender:UIButton?) {
//some code
}
 - click() // ERROR: Missing argument for parameter #1 in call
 - click(btn) // works
 - click(nil) // works
我想这样称呼func:

func click(sender:UIButton?) {
//some code
}
 - click() // ERROR: Missing argument for parameter #1 in call
 - click(btn) // works
 - click(nil) // works
我已经读过这个问题,但我仍然感到困惑,默认情况下,它不是可选的吗?为什么我不能按一下


仅供参考,我知道我可以将方法签名更改为func clicksender:UIButton?=nil,然后单击将起作用,但这似乎有些多余,就像重新说一些已知为默认值的内容一样

您询问的是两个不同的问题:

默认情况下为零的可选类型

通过传递默认nil值的可选函数参数


您需要手动设置nil func clicksender:ui按钮?=nil参数不会为您提供默认值单击是与单击Sender:UIButton?不同的函数,只需单击即可声明一个新函数。您引用的问题是关于默认值,而不是选项。如果您的函数签名是func clicksender:UIButton?=nil它将如您所期望的那样工作。函数的签名不同。点击vs点击:UIButton?.ohhhk。谢谢你简单的提纲。所以不能发送参数的唯一方法是设置默认值?我刚刚阅读了有关初始值设定项的内容,意识到我的困惑是因为将普通函数调用与初始值设定项混淆,如果您有可选属性,则允许您不将其包括在初始值设定项中:D