Menu
CoddyTech

默认值

本课属于 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! 的问候语。提供的测试驱动程序会调用你的函数两次:一次只传入名字,另一次传入名字和明确指定的问候语。不要编写 main,也不要在函数内打印内容。缺少问候语时,必须使用默认值 "Hello"。

亲手试试

fun buildGreeting(name: String, greeting: String): String {
    // 为参数设置默认值,并返回问候语。
    TODO("Build the greeting")
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Kotlin 在线编辑器