Menu
Coddy logo textTech

デフォルト値

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
challenge icon

チャレンジ

中級

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")
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド