Menu
CoddyTech

Khai báo 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 12 trên 56.

Từ điển là tập hợp không có thứ tự gồm các cặp khóa/giá trị. Kiểu dữ liệu của khóa và giá trị được cố định khi bạn tạo từ điển.

var prices: [String: Int] = [
    "apple": 1,
    "bread": 3,
    "milk":  4
]
print(prices.count)            // 3
print(prices.isEmpty)          // false

Chú thích kiểu [String: Int] có nghĩa là “khóa là String, giá trị là Int”. Swift thường có thể suy luận kiểu từ giá trị khởi tạo, nhưng viết rõ kiểu sẽ giúp trình khởi tạo rỗng không gây nhầm lẫn:

var counts: [String: Int] = [:]
// Khác với mảng (array) rỗng, vốn cũng cần chỉ rõ kiểu dữ liệu (data type)

Đọc một khóa tồn tại sẽ trả về giá trị. Đọc một khóa không tồn tại sẽ trả về nil; bài học tiếp theo sẽ đề cập đến phần đó.

challenge icon

Thử thách

Dễ

Đọc ba dòng đầu vào: tên, quốc gia và tuổi dưới dạng số nguyên. Tạo một từ điển duy nhất tên là person, với khóa String và các giá trị bạn đã đọc (tuổi vẫn giữ kiểu Int, bạn sẽ cần một kiểu giá trị hỗn hợp, xem gợi ý).

In ra ba dòng:

  1. Số lượng phần tử trong từ điển
  2. name=<value> bằng cách truy cập qua chỉ số con
  3. country=<value> bằng cách truy cập qua chỉ số con

Dùng dạng có thể in ra: khi đọc giá trị trong từ điển dưới dạng Any, hãy buộc mở gói giá trị đó trước khi in.

Với đầu vào Alice / UK / 30, đầu ra là:

3
name=Alice
country=UK

Tự làm thử

let name = readLine()!
let country = readLine()!
let age = Int(readLine()!)!

// TODO: tạo một từ điển [String: Any] tên là person, in ra số phần tử, name và country
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 thực thi

Tự luyện tập: Playground Swift