当我将 firstThing
设置为默认值 nil
时,这将起作用,没有 nil
的默认值,我得到一个错误,指出缺少调用函数时的参数。
通过输入 Int?
,我认为它是可选的,默认值为 nil
,对吗?如果是这样,为什么没有 = nil
就不能工作?
func test(firstThing: Int? = nil) {
if firstThing != nil {
print(firstThing!)
}
print("done")
}
test()
最佳答案
可选参数和默认参数是两个不同的东西。
Optional 是一个可以为 nil
的变量,仅此而已。
当您省略该参数时,默认参数使用默认值,此默认值指定如下:func test(param: Int = 0)
如果您指定一个可选参数,则必须提供它,即使您要传递的值是nil
。如果你的函数看起来像这样 func test(param: Int?)
,你不能像这样调用它 test()
。尽管该参数是可选的,但它没有默认值。
您还可以将两者结合起来,并有一个参数采用可选值,其中 nil
是默认值,如下所示:func test(param: Int? = nil)
.
关于swift - Swift 函数中的默认可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37305951/