あなたは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?)は
Optional
nilであるか、Typeのインスタンスを含むことができます
- 関数の呼び出しからデフォルト値の引数を省略でき、デフォルト値が使用されます
- 両方
Optional
にデフォルトがある場合、関数呼び出しから省略できますORを含めることができ、nil値を指定できます(たとえば、param1:nil)
func test(firstThing: Int = 4)
:Optional
デフォルト値を持つ非パラメーター。Optional
(何種類?
タイプ名に展開)が値型です。「オプションのパラメーター」は、そのタイプに関係なく、関数呼び出しに存在する場合と存在しない場合があるパラメーターの残念な名前です。