Menu
CoddyTech

Giá trị mặc định

Thuộc phần Kiến thức nền tảng trong hành trình Kotlin của Coddy. Bài học 59 trên 93.

Đôi khi, bạn muốn một tham số của hàm (function) có giá trị dự phòng khi bên gọi không cung cấp giá trị đó. Kotlin cho phép bạn gán giá trị mặc định trực tiếp trong phần định nghĩa tham số.

fun greet(name: String = "Guest") {
    println("Hello, $name!")
}

fun main() {
    greet("Alice")
    greet()
}
// Đầu ra:
// Hello, Alice!
// Hello, Guest!

Khi gọi greet() mà không truyền đối số, Kotlin sẽ dùng giá trị mặc định "Guest". Điều này giúp hàm linh hoạt hơn: bên gọi có thể tùy chỉnh cách hoạt động khi cần hoặc dùng các giá trị mặc định hợp lý.

Bạn có thể kết hợp các tham số có và không có giá trị mặc định. Tham số có giá trị mặc định thường đứng cuối:

fun createUser(name: String, role: String = "member"): String {
    return "$name ($role)"
}

fun main() {
    println(createUser("Alice", "admin"))
    println(createUser("Bob"))
}
// Đầu ra:
// Alice (admin)
// Bob (member)

Đối số có tên đặc biệt hữu ích khi dùng với giá trị mặc định. Chúng cho phép bạn bỏ qua một số tham số và cung cấp các tham số khác:

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 = "-> ")
}
// Đầu ra: -> hello
challenge icon

Thử thách

Trung bình

Hãy triển khai buildGreeting(name: String, greeting: String = "Hello"): String. Trả về lời chào theo dạng greeting, name!. Trình điều khiển test được cung cấp gọi hàm của bạn hai lần: một lần chỉ với tên và một lần với tên cùng lời chào được chỉ định rõ. Không viết main hoặc in ra bên trong hàm. Nếu thiếu lời chào, hãy dùng giá trị mặc định "Hello".

Tự làm thử

fun buildGreeting(name: String, greeting: String): String {
    // Thêm giá trị mặc định cho tham số (parameter) và trả về lời chào.
    TODO("Build the greeting")
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Playground Kotlin