デフォルト値
CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 59/93。
呼び出し側が値を指定しない場合に、関数のパラメータにフォールバック値を設定したいことがあります。Kotlinでは、パラメータの定義にデフォルト値を直接割り当てることができます。
fun greet(name: String = "Guest") {
println("Hello, $name!")
}
fun main() {
greet("Alice")
greet()
}
// 出力:
// Hello, Alice!
// Hello, Guest!引数なしで greet() を呼び出すと、Kotlin はデフォルト値 "Guest" を使用します。これにより関数の柔軟性が高まり、必要に応じて呼び出し側で動作をカスタマイズしたり、妥当なデフォルト値に任せたりできます。
デフォルト値のあるパラメーターとないパラメーターを混在させることができます。通常、デフォルト値のあるパラメーターは最後に置きます。
fun createUser(name: String, role: String = "member"): String {
return "$name ($role)"
}
fun main() {
println(createUser("Alice", "admin"))
println(createUser("Bob"))
}
// 出力:
// Alice (admin)
// Bob (member)名前付き引数は、デフォルト値と組み合わせると特に便利です。ほかの引数を指定しながら、一部のパラメータを省略できます。
fun format(text: String, uppercase: Boolean = false, prefix: String = "") {
val result = if (uppercase) text.uppercase() else text
println("$prefix$result")
}
fun main() {
format("hello", prefix = "-> ")
}
// 出力: -> helloチャレンジ
中級buildGreeting(name: String, greeting: String = "Hello"): Stringを実装してください。greeting, name!の形式で挨拶を返します。用意されたテストドライバーは、あなたの関数を2回呼び出します。1回目は名前だけを指定し、2回目は名前と明示的な挨拶を指定します。関数内にmainを書いたり、出力したりしないでください。挨拶が指定されていない場合は、デフォルトの"Hello"を使用する必要があります。
自分で試してみよう
fun buildGreeting(name: String, greeting: String): String {
// パラメータにデフォルト値を追加して、挨拶を返す。
TODO("Build the greeting")
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド