Swift関数のデフォルトのオプションパラメータ 質問する

Swift関数のデフォルトのオプションパラメータ 質問する

firstThingデフォルトに設定するとnil動作しますが、デフォルト値がないと、nil関数を呼び出すときにパラメーターが不足しているというエラーが発生します。

と入力すると、Int?デフォルト値が でオプションになると思いましたがnil、正しいでしょうか? もしそうなら、 がないとなぜ機能しないのでしょうか= nil?

func test(firstThing: Int? = nil) {
    if firstThing != nil {
        print(firstThing!)
    }
    print("done")
}
test()

ベストアンサー1

オプションとデフォルトパラメータは異なるものです。

Optional は、 にできる変数ですnil。それだけです。

デフォルトのパラメータはデフォルトパラメータを省略した場合、デフォルト値は次のように指定されます。func test(param: Int = 0)

オプションのパラメータを指定する場合、渡したい値が であっても、それを提供する必要がありますnil。関数が のようになっている場合func test(param: Int?)、このように呼び出すことはできませんtest()。パラメータがオプションであっても、デフォルト値はありません。

nilまた、この 2 つを組み合わせて、次のように、 がデフォルト値であるオプションの を取るパラメータを持つこともできますfunc test(param: Int? = nil)

おすすめ記事