【发布时间】:2016-05-18 17:02:37
【问题描述】:
当我将firstThing 设置为默认nil 时,这将起作用,如果没有nil 的默认值,我会在调用函数时收到一个错误,即缺少参数。
通过输入Int?,我认为它是可选的,默认值为nil,对吗?如果是这样,为什么没有= nil 就不能工作?
func test(firstThing: Int? = nil) {
if firstThing != nil {
print(firstThing!)
}
print("done")
}
test()
【问题讨论】:
-
考虑你可以写
func test(firstThing: Int = 4):一个非Optional的参数,默认值。Optional类型(这是类型名称中的?扩展为)是值类型; “可选参数”是在函数调用中可能出现也可能不出现的参数的不幸名称,无论其类型如何。 -
你用什么版本的 Swift 来测试这段代码?你的代码工作正常!! Optional 只是一种类型,默认参数与 Swift 中的另一种类型一样工作正常