1. 程式人生 > >Swift - 字典 (Dictionary)

Swift - 字典 (Dictionary)

字典 (Dictionary)

  1. 儲存同類型值的容器;
  2. 鍵(key)是字典中的這個值資料(value)的唯一識別符號;
  3. 目前 Swift 的 Dictionary 型別被橋接到 Foundation 的 NSDictionary 類;
  4. 一個字典的 Key 型別必須遵循 Hashable 協議,就像 Set 的值型別;

建立

// 1. 建立一個可變的空字典
var dictName = [Int: String]()
// 2. 使用字典字面量建立(: [String: String]可省略)
var dictName: [String: String] = ["key1": "Value1", "key2": "Value2"]

新增

// 1. 使用下標語法
dictName["newKey"] = "newValue"
// 2. 使用特定方法
updateValue(_:forKey:)

刪除

// 1. 使用下表語法
dictName["oldKey"] = nil
// 2. 使用特定的方法
removeValue(forKey:)

修改

// 1. 使用下標語法
dictName["oldKey"] = "newValue"
// 2. 使用特定方法
updateValue(_:forKey:)

遍歷

/*
 * 1. 遍歷鍵值對
 * 我們可以使用 for-in 迴圈來遍歷某個字典中的鍵值對。每一個字典中的資料項都以 (key, value) 元組形式返回,並且我們可以使用臨時常量或者變數來分解這些元組
 */
 for (keyName, valueName) in dictName {
    print("\(keyName): \(valueName)")
}

/*
 * 2. 遍歷字典的鍵或者值
 * 通過訪問 keys 或者 values 屬性
 */
 for keyDesc in dictName.keys {
    print("Key: \(keyDesc)")
}

for valueDesc in dictName.values {
    print("Value: \(valueDesc)")
}

Others

// 1. 通過字典的只讀屬性 count 來獲取某個字典的資料項數量
dictName.count
// 2. 布林屬性 isEmpty 檢查 count 是否為0
dictName.isEmpty
// 3. Swift 的字典型別是無序集合型別。為了以特定的順序遍歷字典的鍵或值,可以對字典的 keys 或 values 屬性使用 sorted() 方法