デフォルト値
CoddyのSwiftジャーニー「基礎」セクションの一部 — レッスン 57/86。
時には、パラメータがほとんどの場合に使用される値を持つことがあります。呼び出し側に毎回その値を提供することを要求する代わりに、そのパラメータにデフォルト値を割り当てることができます。
デフォルト値を設定するには、パラメータの型の後に代入演算子(=)を使用します:
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // 出力: Hello, Alice!
greet(name: "Bob", greeting: "Hi") // 出力: Hi, Bob!関数を呼び出す際、デフォルト値を持つパラメータは省略できます。Swiftは自動的にデフォルト値を使用します。しかし、別の値が必要な場合は、明示的に指定することも可能です。
デフォルト値を持つパラメータは、パラメータリストの最後に配置する必要があります。これにより、関数呼び出しが簡潔で読みやすくなります:
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // 出力: 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // 出力: 120.0デフォルト値を使用することで、関数がより柔軟になります。一般的なケースではシンプルに動作し、必要に応じてカスタマイズすることも可能です。
チャレンジ
簡単name、greeting、および repeatCount を受け取り、フォーマットされた挨拶メッセージを返す関数 formatGreeting を作成してください。
この関数は、オプションのパラメータに対して以下のデフォルト値を使用する必要があります:
greetingのデフォルト値は"Hello"としますrepeatCountのデフォルト値は1とします
挨拶のパターンを指定された回数だけ繰り返し、スペースで区切った文字列を構築してください。
パラメータ:
name(String): 人の名前(必須)greeting(String): 挨拶の言葉(デフォルト:"Hello")repeatCount(Int): 挨拶を繰り返す回数(デフォルト:1)
戻り値: 挨拶のパターンを繰り返した文字列。フォーマット: "[greeting], [name]!" を repeatCount 回繰り返し、単一のスペースで区切ったもの (String)
例えば、name が "Alice"、greeting が "Hi"、repeatCount が 2 の場合、関数は "Hi, Alice! Hi, Alice!" を返します。
name に "Bob" のみを指定して呼び出した場合(デフォルト値を使用)、"Hello, Bob!" を返します。
チートシート
パラメータにデフォルト値を設定するには、パラメータの型の後に代入演算子(=)を使用します。
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // 出力: Hello, Alice!
greet(name: "Bob", greeting: "Hi") // 出力: Hi, Bob!関数を呼び出す際、デフォルト値を持つパラメータは省略できます。Swiftは自動的にデフォルト値を使用しますが、必要に応じて明示的に別の値を指定することも可能です。
デフォルト値を持つパラメータは、パラメータリストの最後に配置する必要があります:
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // 出力: 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // 出力: 120.0自分で試してみよう
func formatGreeting(name: String, greeting: String, repeatCount: Int) -> String {
// ここにコードを記述してください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。