1. ホーム
  2. swift

[解決済み] テスト

2022-02-23 13:32:55

質問

を設定すると 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) .