Cập nhật từ điển
Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 14 trên 56.
Bạn ghi vào từ điển giống như cách bạn đọc từ điển: dùng chỉ số dưới.
var prices: [String: Int] = ["apple": 1]
prices["bread"] = 3 // thêm khóa (key)
prices["apple"] = 2 // cập nhật khóa hiện có
prices["apple"] = nil // xóa khóaHai phương thức có tên này thực hiện cùng một việc một cách tường minh hơn:
prices.updateValue(5, forKey: "milk") // trả về giá trị cũ hoặc nil
prices.removeValue(forKey: "bread") // trả về giá trị đã xóa hoặc nilCác phương thức (method) có tên trả về giá trị trước đó, hữu ích khi bạn cần biết khóa đã tồn tại hay chưa.
Mẫu chỉ số mặc định ở bài học trước kết hợp rất tốt với thao tác thay đổi dữ liệu (mutation), giúp bạn tạo bộ đếm mà không cần viết if:
var counts: [String: Int] = [:]
for letter in ["a", "b", "a"] {
counts[letter, default: 0] += 1
}
// counts == ["a": 2, "b": 1]Thử thách
Trung bìnhĐọc một dòng đầu vào: danh sách các thao tác được phân tách bằng dấu phẩy trên một từ điển ban đầu. Mỗi thao tác thuộc một trong các loại sau:
set:<key>:<value>thêm hoặc cập nhật (giá trị là số nguyên)add:<key>:<value>cộng giá trị vào giá trị hiện có (dùng mẫu chỉ số mặc định)del:<key>xóa khóa
Sau khi áp dụng lần lượt mọi thao tác vào một từ điển [String: Int] ban đầu rỗng, in các khóa theo thứ tự bảng chữ cái, mỗi khóa trên một dòng, theo định dạng <key>=<value>.
Với đầu vào set:a:5,add:a:3,set:b:1,del:b,add:c:2, đầu ra là:
a=8
c=2Tự làm thử
let ops = readLine()!.components(separatedBy: ",")
var dict: [String: Int] = [:]
// TODO: phân tích từng op và thực hiện set/add/del; in ra các khóa đã sắp xếp cùng giá trị tương ứng
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 thực thi
1Chuỗi chuyên sâu
Đếm và chỉ sốChữ hoa, chữ thường và xóa khoảng trắngTìm kiếm trong chuỗiTách và nối chuỗiThay thế chuỗi conÔn tập: Kiểm tra tên người dùng4Tập hợp
Tạo tập hợpPhép hợp và phép giaoPhép trừ và hiệu đối xứngTập con và tập hợp conÔn tập: Bộ lọc thẻ7Dự án: Theo dõi thói quen
Tổng quan dự ánĐánh dấu hoàn thành10Dự án: bộ máy trắc nghiệm
Tổng quan dự ánĐặt câu hỏiTự luyện tập: Playground Swift