- Bài 1: Tổng quan ngôn ngữ Swift
- Bài 2: Hướng dẫn cài đặt Xcode và chạy một playground
- Bài 3: Những cú pháp cơ bản trong swift
- Bài 4: Kiểu dữ liệu
- Bài 5: Toán tử trong ngôn ngữ lập trình Swift
- Bài 6: Câu lệnh rẽ nhánh trong swift – Decision Making
- Bài 7: Chuỗi ký tự trong Swift - Character và String
- Bài 8: Vòng lặp trong swift – Loops
- Bài 9: Mảng Array trong swift
- Bài 10: Dictionary trong swift
- Bài 11: Optional trong Swift
- Bài 12: Functions trong swift
- Bài 13: Closure trong swift
- Bài 14: Enumeration trong swift
- Bài 15: Struct trong swift
- Bài 16: Classes trong swift
- Bài 17: Properties trong swift
- Bài 18: Methods trong swift
- Bài 19: Subscripts trong swift
- Bài 20: Inheritance trong swift
- Bài 21: Initialization trong swift
- Bài 22: Deinitialization trong swift
- Bài 23: ARC trong swift
- Bài 24: Type casting trong swift
- Bài 25: Extensions trong swift
- Bài 26: Protocols trong swift
- Bài 27: Generics trong swift
- Bài 28: Access control trong swift
Bài 10: Dictionary trong swift - Lập trình Swift cơ bản
Đăng bởi: Admin | Lượt xem: 3162 | Chuyên mục: Swift
Dictionary
Cũng giống như trong Objective-C thì dictionary trong Swift cũng được sử dụng để lưu trữ các giá trị và mỗi giá trị đều sẽ được truy xuất theo key tương ứng.
Kiểu dữ liệu
Để truy xuất, Dictionary sẽ lưu giá trị kèm theo một key, đa phần các kiểu dữ liệu sẽ giống nhau trong cùng một dictionary để khi biết kiểu dữ liệu của giá trị sẽ truy xuất dễ dàng hơn.
Khai báo(Declaration)
Để khai báo một dictionary bạn cần có key và value. Ví dụ:
var dictionary1: Dictionary<String, Int>
var dictionary2: [String: Int]
var dictionary3 = ["Math": 3, "Science": 8, "physics": 11]
Kiểu dữ liệu string là kiểu mà bạn sẽ thấy đa phần key sẽ hay mang nhất, còn value là kiểu dữ liệu bất kỳ và trong cùng một dictionary phải giống nhau giữa các phần tử.
Các biến dictionary có thể thay đổi các phần tử nếu dùng var và ngược lại sẽ không thể thay đổi được nếu dùng let.
Cách chỉnh sửa và truy xuất giá trị trong mảng. Ví dụ:
let value = dictionary3["swift"]
print(value)
var dictionary4 = [0: "swift", 1: "java", 2: "php"]
let fruit = dictionary4[0]
Một số tính năng thường dùng với mảng như:
dictionary4.removeValue(forKey: 0) // Xoá phần tử trong dictionary với key 0.
// Khởi tạo và thêm phần tử trong dictionary
var dictionary = [String: Int]()
dictionary["swift"] = 2
dictionary["java"] = 10
dictionary["php"] = 5
--> dictionary = [2: "swift", 10: "java", 5: "php"]
Cách truy cập các elements trong Dictionary
1. Truy cập trực tiếp
let someDic = ["a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9]
print(someDic["a"])
--> 1
print(someDic["h"])
--> 8
2. Dùng vòng lặp để truy cập tất cả các elements
let someDic = ["a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9]
for (key, value) in someDic {
print("key:\(key) value:\(value)")
}
-> key: a value: 1
-> key: b value: 2
--> ...
-> key: i value: 9
Cách modify các elements trong Dictionary
1. Add thêm element
var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
someDictionary["Japan"] = "Tokyo"
print(someDictionary)
--> ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi", "Japan": "Tokyo"]
2. Update element
var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
someDictionary["Nepal"] = "KATHMANDU"
print(someDictionary)
--> ["Nepal":"KATHMANDU", "China":"Beijing", "India":"NewDelhi"]
Các function và properties trong Dictionary
1. isEmpty
Property có nhiệm vụ xác định dictionary có giá trị hay không, đối với trường hợp có thì bạn sử dụng return false và ngược lại sẽ là return true.
let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
print(someDictionary.isEmpty)
return: false
2. first
Ngoài ra Property cũng được sử dụng để truy cập phần tử đầu tiên của dictionary.
Vì dictionary không có thứ tự, nên .first sẽ không phải là phần tử đầu tiên mà các bạn add vào dictionary đâu nhé.
let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
print(someDictionary.first)
result: Optional((key: "China", value: "Beijing"))
Nếu dictionary empty thì sẽ return nil.
var someDict = [Int:String]()
print(someDict.first)
result: nil
3. count
Một chức năng khác nữa của Property là return tổng elements (key:value) có trong dictionary
let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
print(someDictionary.count)
return: 3
4. keys
Property này return tất cả keys có trong dictionary
var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
let dictKeys = Array(someDictionary.keys)
print(dictKeys)
return: ["China", "India", "Nepal"]
5. removeValue
Function này sẽ remove element ra khỏi dictionary
var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
someDictionary.removeValue(forKey: "Nepal")
print(someDictionary)
return: ["India": "NewDelhi", "China": "Beijing"]
6. filter
Sau khi được lọc bằng một điều kiện bất kỳ nào đó, các elements sẽ được filter return
var cities = ["Delhi","Bangalore","Hyderabad"]
var distance = [2000,10,620]
let cityDistanceDict = Dictionary(uniqueKeysWithValues: zip(cities, distance))
var closeCities = cityDistanceDict.filter { $0.value < 1000 }
print(closeCities)
return: ["Hyderabad": 620, "Bangalore": 10]
Ví dụ ở đây là in ra những cities có khoảng cách < 1000
Những điều cần lưu ý
- Khi access vào key không tồn tại trong dictionary thì value = nil
var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
let val = someDictionary["Japan"]
print(val)
return: nil
- Keys có sự phân biệt giữa chữ hoa và chữ thường
var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
let lowerCaseVal = someDictionary["nepal"]
let uperCaseVal = someDictionary["Nepal"]
print(lowerCaseVal)
print(uperCaseVal)
return:
nil
Optional("Kathmandu")
- Default value cho Key không tồn tại
var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"]
let val = someDictionary["nepal", default:"Not Found"]
print(val)
return: Not Found
Trong trường hợp trên key = "nepal" không tồn tại nên return default value là Not Found. Nếu key = "nepal" tồn tại thì sẽ return value tương ứng của key này
var someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi", "nepal":"aaaaa"]
let val = someDictionary["nepal", default:"Not Found"]
print(val)
return: aaaa
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!
- Bài 1: Tổng quan ngôn ngữ Swift
- Bài 2: Hướng dẫn cài đặt Xcode và chạy một playground
- Bài 3: Những cú pháp cơ bản trong swift
- Bài 4: Kiểu dữ liệu
- Bài 5: Toán tử trong ngôn ngữ lập trình Swift
- Bài 6: Câu lệnh rẽ nhánh trong swift – Decision Making
- Bài 7: Chuỗi ký tự trong Swift - Character và String
- Bài 8: Vòng lặp trong swift – Loops
- Bài 9: Mảng Array trong swift
- Bài 10: Dictionary trong swift
- Bài 11: Optional trong Swift
- Bài 12: Functions trong swift
- Bài 13: Closure trong swift
- Bài 14: Enumeration trong swift
- Bài 15: Struct trong swift
- Bài 16: Classes trong swift
- Bài 17: Properties trong swift
- Bài 18: Methods trong swift
- Bài 19: Subscripts trong swift
- Bài 20: Inheritance trong swift
- Bài 21: Initialization trong swift
- Bài 22: Deinitialization trong swift
- Bài 23: ARC trong swift
- Bài 24: Type casting trong swift
- Bài 25: Extensions trong swift
- Bài 26: Protocols trong swift
- Bài 27: Generics trong swift
- Bài 28: Access control trong swift