1. ホーム
  2. swift

[解決済み] Swiftの関数におけるデフォルトのオプションパラメータ

2022-06-15 06:59:47

質問

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

タイプすることで Int? というデフォルト値でオプションにしたのでは? nil というデフォルト値で任意にするものだと思っていたのですが、そうなのでしょうか?もしそうなら、なぜそれが = nil ?

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

どのように解決するのですか?

オプショナルとデフォルトのパラメータは別物です。

オプショナルは変数で nil である。

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

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

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