Menu
CoddyTech

Đối số có tên

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 58 trên 93.

Khi gọi một hàm có nhiều tham số, bạn thường truyền các đối số theo đúng thứ tự chúng được định nghĩa. Nhưng Kotlin có một cách khác gọn gàng hơn: đối số có tên.

Với đối số có tên, bạn chỉ định mỗi giá trị thuộc về tham số nào bằng cách dùng tên tham số theo sau là =:

fun createProfile(name: String, age: Int, city: String) {
    println("$name, $age, from $city")
}

fun main() {
    createProfile(name = "Alice", age = 25, city = "Paris")
}
// Đầu ra: Alice, 25, đến từ Paris

Điều này giúp code của bạn dễ đọc hơn, đặc biệt khi một hàm có nhiều tham số cùng kiểu dữ liệu. Hãy so sánh hai lời gọi hàm sau:

// Không dùng đối số có tên: những con số này có nghĩa là gì?
calculateArea(10, 5, 3)

// Dùng đối số có tên: rõ ràng hơn nhiều!
calculateArea(length = 10, width = 5, height = 3)

Đối số có tên cũng cho phép bạn truyền giá trị theo thứ tự bất kỳ mà bạn muốn:

fun greet(firstName: String, lastName: String) {
    println("Hello, $firstName $lastName!")
}

fun main() {
    greet(lastName = "Smith", firstName = "John")
}
// Đầu ra: Hello, John Smith!

Bạn có thể kết hợp đối số theo vị trí và đối số có tên, nhưng khi đã dùng một đối số có tên thì các đối số tiếp theo cũng nên có tên để tránh nhầm lẫn.

challenge icon

Thử thách

Trung bình

Bạn được cung cấp hàm sau:

fun formatBook(title: String, author: String, year: Int) {
    println("\"$title\" by $author ($year)")
}

Đọc ba đầu vào: tên sách (String), tên tác giả (String) và năm xuất bản (Int).

Gọi hàm formatBook bằng đối số có tên theo thứ tự cụ thể sau: year, title, author.

Ví dụ, nếu đầu vào là:

1984
George Orwell
1949

Đầu ra sẽ là:

"1984" by George Orwell (1949)

Tự làm thử

fun formatBook(title: String, author: String, year: Int) {
    println("\"$title\" by $author ($year)")
}

fun main() {
    val title = readLine()!!
    val author = readLine()!!
    val year = readLine()!!.toInt()
    
    // TODO: Gọi formatBook bằng các đối số có tên theo thứ tự: year, title, author
    
}
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