Đố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.
Thử thách
Trung bìnhBạ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
}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
4Toán tử phần 1
Toán tử số họcToán tử moduloPhép gán kết hợpToán tử so sánhÔn tập: phép tính đơn giản7Nhập xuất cơ bản
Hàm PrintlnMẫu chuỗiĐầu vào ReadLineChuyển đổi kiểu dữ liệuÔn tập: Số năm đến khi nghỉ hưuÔn tập: Đúng hay sai10Hàm
Khai báo hàmTham số và đối sốGiá trị trả vềĐối số có tênGiá trị mặc địnhHàm chỉ gồm một biểu thứcÔn tập: hàm SigmaÔn tập: hàm kiểm tra hợp lệ3Tính có thể null
An toàn với null là gìKiểu có thể nullToán tử gọi an toànToán tử ElvisCơ bản về thử thách hàmKhẳng định không nullÔn tập: truy cập an toàn6Ra quyết định
Câu lệnh ifCâu lệnh if-elseIf dưới dạng biểu thứcBiểu thức whenWhen với khoảng giá trịÔn tập: máy tính đơn giản9Vòng lặp
Vòng lặp forVòng lặp whileVòng lặp do-whileBreakContinuePhạm vi trong vòng lặpVòng lặp lồng nhauÔn tập: giai thừaÔn tập: đầu vào động12Cơ bản về danh sách
List và MutableListTruy cập phần tửChỉnh sửa danh sáchPhương thức của ListPair và TripleÔn tập: danh sách sản phẩmÔn tập: danh sách đảo ngược15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát khỏi chương trìnhTự luyện tập: Playground Kotlin