Map lồng nhau
Thuộc phần Logic và luồng chương trình trong hành trình Kotlin của Coddy. Bài học 9 trên 63.
Giá trị trong một map cũng có thể là một map. Mỗi lần tra cứu có thể không tìm thấy giá trị, vì vậy hãy kết hợp lời gọi an toàn với giá trị dự phòng cuối cùng. Các cập nhật có thể thay đổi yêu cầu tính khả biến ở cấp đang được thay đổi.
Bên trong main:
val school = mapOf("Ada" to mapOf("math" to 9))
println(school["Ada"]?.get("art") ?: -1)Ada tồn tại, nhưng khóa art bên trong thì không, nên giá trị dự phòng được dùng.
Dùng cách truy cập an toàn ở mỗi cấp của map có thể không tồn tại.
Thử thách
Trung bìnhHoàn thiện nestedScore với các tham số name: String, subject: String. Dùng các bản ghi cố định Ada: math 9, art 7; Bo: math 6. Trả về điểm được yêu cầu hoặc -1 nếu không có tên hoặc môn học đó.
Trừ khi có giới hạn chặt hơn ở trên, các tập hợp chứa tối đa 100 phần tử ở mỗi cấp, và các đối số số nguyên cùng giá trị số nguyên trong tập hợp nằm trong khoảng từ -1000 đến 1000. Văn bản được cung cấp để phân tích có thể chứa các biểu diễn không hợp lệ hoặc nằm ngoài phạm vi như mô tả.
Trả về giá trị thuộc kiểu Int. Giữ nguyên code đầu vào/đầu ra được cung cấp. Code này đọc từng đối số đơn trên một dòng; danh sách bắt đầu bằng số lượng phần tử, theo sau là các phần tử, còn map bắt đầu bằng số lượng mục, theo sau là từng khóa và giá trị. Danh sách lồng nhau lặp lại định dạng số lượng phần tử và các phần tử cho mỗi hàng. main được cung cấp sẽ in giá trị trả về, sau đó là một ký tự xuống dòng. Danh sách dùng định dạng chuẩn có dấu ngoặc vuông của Kotlin; không in thêm nhãn nào.
Tự làm thử
fun nestedScore(name: String, subject: String): Int {
// Viết lời giải của bạn ở đây.
return 0
}
fun main() {
val name = readLine().orEmpty()
val subject = readLine().orEmpty()
println(nestedScore(name, subject))
}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 Logic và luồng chương trình
4Các tập hợp lồng nhau
Danh sách các danh sáchDuyệt qua các hàngTóm tắt từng hàngLàm phẳng danh sách lồng nhauÔn tập: Các hàng ghế3Tập hợp và phép kiểm tra thành viên
Tạo tập hợpCập nhật tập hợpCác phép toán trên tập hợpKiểm tra tập conÔn tập: Khách mời sự kiện6Giá trị hàm
Viết biểu thức lambdaCác kiểu hàmTruyền hàmBiến được captureÔn tập: Điểm số có thể tùy chỉnh9Luồng điều khiển nâng cao
Mệnh đề bảo vệThoát khỏi vòng lặp có nhãnTiếp tục vòng lặp có nhãnHàm đệ quyÔn tập: hàng hợp lệ đầu tiênTự luyện tập: Playground Kotlin