Menu
CoddyTech

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.

challenge icon

Thử thách

Trung bình

Hoà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))
}
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 Logic và luồng chương trình

Tự luyện tập: Playground Kotlin