あなたはOptionalデフォルトを持つことに自信を持っています。アンは、Optional値かnilのどちらかを受け入れます。デフォルトを使用すると、関数を呼び出すときに引数を省略できます。引数は、Optional型であってもなくても、デフォルト値を持つことができます。
func someFunc(param1: String?,
param2: String = "default value",
param3: String? = "also has default value") {
print("param1 = \(param1)")
print("param2 = \(param2)")
print("param3 = \(param3)")
}
出力を伴う呼び出しの例:
someFunc(param1: nil, param2: "specific value", param3: "also specific value")
param1 = nil
param2 = specific value
param3 = Optional("also specific value")
someFunc(param1: "has a value")
param1 = Optional("has a value")
param2 = default value
param3 = Optional("also has default value")
someFunc(param1: nil, param3: nil)
param1 = nil
param2 = default value
param3 = nil
要約する:
- ?で入力 (例:String?)は
Optionalnilであるか、Typeのインスタンスを含むことができます
- 関数の呼び出しからデフォルト値の引数を省略でき、デフォルト値が使用されます
- 両方
Optionalにデフォルトがある場合、関数呼び出しから省略できますORを含めることができ、nil値を指定できます(たとえば、param1:nil)
func test(firstThing: Int = 4):Optionalデフォルト値を持つ非パラメーター。Optional(何種類?タイプ名に展開)が値型です。「オプションのパラメーター」は、そのタイプに関係なく、関数呼び出しに存在する場合と存在しない場合があるパラメーターの残念な名前です。