当我将f
irstThing设置为
默认值为零时,这将工作,没有
默认值nil,我得到
一个错误,
调用该
函数时缺少
一个参数。
通过输入Int?我以为它是可选的,默认值为零,是吗?如果是这样,为什么没有= nil?
func test(firstThing: Int? = nil) {
if firstThing != nil {
print(firstThing!)
}
print("done")
}
test()
可选项和
默认参数是两个不同的东西。
An可选是一个可以为零的变量,就是这样。
默认参数在省略该参数时使用默认值,默认值如下所示:func test(param:Int = 0)
如果您指定一个可选参数,则必须提供该参数,即使您要传递的值为零。如果你的函数看起来像这个func测试(param:Int?),你不能像这个test()一样调用它。即使参数是可选的,它没有默认值。
你也可以组合这两个,并且有一个可选参数,其中nil是默认值,如下所示:func test(param:int?= nil)。