Khi thấy từ “dictionary”, bạn có dịch ra là “từ điển” theo đúng nghĩa đen Anh-Việt không? Bạn đừng nhầm lẫn nhé, đây không phải là bài viết hướng dẫn sử dụng “từ điển”. Dictionary ở đây có thể xem như một dạng mảng đặc biệt và cũng ưa dùng trong lập trình Swift. Vậy cụ thể dictionary trong Swift là gì thì bây giờ chúng ta cùng tìm hiểu nhé.


Dictionary là gì?


Dictionary giống mảng ở chỗ đều là một cấu trúc đặc biệt có khả năng lưu trữ nhiều phần tử dữ liệu bên trong. Nhưng khác với mảng, dictionary không quản lý các phần tử bên trong theo chỉ số vị trí. Các phần tử bên trong dictionary được quản lý thông qua một định danh duy nhất (hay còn gọi là khoá).

Dictionary là một dạng danh sách, trong đó mỗi phần tử gồm 2 thành phần: key và value. Trong dictionary, key là duy nhất, value có kiểu optional.

sictionary swift

Bạn dùng dictionary khi cần tìm kiếm các giá trị dựa trên định danh (key) của chúng, giống như cách bạn tìm kiếm định nghĩa của các từ trong một quyển “từ điển”.


Cú pháp tạo Dictionary


Có 02 phương pháp tạo dictionary phổ biến như sau:

Phương pháp 1: tạo dictionary rỗng.

Thực hiện theo cú pháp sau để tạo một dictionary mới (không có bất kỳ phần tử nào bên trong):
dictionary swift ➤ Ví dụ: khai báo dictionary có key là một số nguyên và value là một chuỗi.
dictionary swiftChỉ đơn giản như vậy thôi là bạn đã tạo được một dictionary mới rồi. Phần này cũng không có gì phức tạp nên mình sẽ không giải thích gì thêm nữa nhé.

Phương pháp 2: tạo dictionary bằng cách gán các phần tử trực tiếp.

Đây là phương pháp hay gặp trong trường hợp bạn muốn tạo một danh sách các tham số. Cú pháp như sau:
dictionary swift

Trong cú pháp trên, chúng ta có thể thấy rằng việc gán các phần tử vào dictionary cũng tương đối dễ dàng. Đó là sử dụng phép gán “=” ngay khi khởi tạo để cung cấp sẵn các giá trị ban đầu cho dictionary.

Ví dụ: tạo một dictionary có sẵn 02 phần tử như sau.
dictionary swift

➤ Lưu ý: bạn hãy lưu ý là mỗi phần tử ngăn cách nhau bởi dấu phẩy “,” nhé.


Thao tác với dictionary


Thêm phần tử mới

Để cho dễ hình dung, mình sẽ thực hiện một ví dụ như sau để thêm phần tử mới nhé.
dictionary swiftBạn có nhận xét gì về ví dụ trên không? Việc thêm một phần tử mới vào dictionary chỉ đơn giản là chỉ định giá trị cho key và value thôi phải không nào.

Sửa giá trị của phần tử trong dictionary

Sử dụng phương thức updateValue trong trường hợp bạn muốn sửa hoặc thay đổi giá trị của một phần tử đã có. Cú pháp như sau:
dictionary swift ➤ Ví dụ: sửa value có key là “HCM” đã được tạo ở trên thành “Ho Chi Minh Airport”.
dictionary swiftHoặc chúng ta cũng có thể thay đổi giá trị của phần tử đã có trong dictionary bằng cách truy xuất trực tiếp phần tử đó thông qua key giống thêm phần tử mới, ví dụ:
dictionary swift

Xoá phần tử trong dictionary

Để xoá phần tử trong dictionary, chúng ta gán giá trị của phần tử đó là nil, ví dụ:
dictionary swiftHoặc chúng ta cũng có thể sử dụng phương thức removeValue() theo cú pháp như sau:
dictionary swift ➤ Ví dụ: xoá phần tử có key là “HCM” khỏi airports.
dictionary swift

Duyệt dictionary

Tương tự mảng, chúng ta sẽ sử dụng vòng lặp để duyệt tất cả các phần tử trong dictionary, mỗi phần tử trả về một bộ giá trị (tuple) có dạng (key, value) như sau:
dictionary swift Phương pháp này tương tự như duyệt mảng, bạn nào quên thì xem lại bài mảng nhé. Bên cạnh đó, chúng ta cũng có thể duyệt riêng keys hoặc values nếu muốn. Ví dụ:
dictionary swift Ngoài ra, ta cũng có thể lấy ra một mảng các key hoặc mảng các value thông qua thuộc tính keysvalues như sau:
dictionary swift Đếm số lượng phần tử trong dictionary, ví dụ:
dictionary swift Kiểm tra dictionary có phần tử nào hay không
dictionary swift

Sắp xếp dictionary

Dictionary chỉ hỗ trợ 01 phương thức sắp xếp bằng cách tự định nghĩa closure.

➤ Ví dụ 1: Sắp xếp theo key tăng dần
dictionary swift

➤ Ví dụ 2: Sắp xếp kết hợp theo 2 tiêu chí key tăng dần và value giảm dần.
dictionary swift

Đây là thao tác cuối cùng mà mình trình bày trong bài này. Hầu như những thao tác này cũng gần tương tự mảng, bạn chỉ cần lưu ý điểm khác biệt giữa mảng và dictionary một xíu thì mọi việc sẽ dễ dàng hơn rất nhiều.


Tổng kết


Trên đây là những thao tác mà bạn sẽ hay thực hiện khi sử dụng dictionary. Nội dung phần này code có thể hơi nhiều nhưng không có gì quá khó hiểu phải không nào, chủ yếu là vận dụng lại những kiến thức của các bài trước mà thôi. Vì vậy nếu bạn nào quên kiến thức chỗ nào thì xem lại hoặc comment bên dưới nhé.

0 0 votes
Đánh giá bài viết
1 Bình luận
cũ nhất
mới nhất
Inline Feedbacks
View all comments
DungPham
DungPham
3 năm trước

Thanks bạn Trung, rất cám ơn bạn đã chia sẽ những kiến thức lập trình dễ hiểu. Chúc web của bạn ngày càng có thêm nhiều chia sẻ bổ ích.