swift - Swift 函数中的默认可选参数

标签 swift function option-type

当我将 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/

相关文章:

Swift Codable - 如何以失败的方式初始化可选的枚举属性

c++ - "not in this scope"cpp函数调用错误

Swift - 如何使内部属性可选

swift - 使用 RxSwift 订购网络请求结果

swift - 类型 'ViewController' 不符合协议(protocol) 'UITableViewDataSource' 我不知道为什么

ios - 在 TableView 单元格中使用自定义 XIB

javascript - 函数属性和原型(prototype) - Javascript

javascript - 有没有办法将多个参数传递给 jquery 函数

java - Stream in orElse of optional

swift - 有没有一种 Swifty 方法可以使用字符串插值来解包可选值?