第二章:內建集合型別
2.2字典
字典的可變性:
var dict = ["name":"liaoWorking","age":"17"]
複製程式碼
知識點1:書中提到了可以用updateValue(_:forKey:) 獲取到更新之前如果有值的舊值。
/// 得到更新鍵值對之前的值 updateValue
let oldValue = dict.updateValue("18", forKey: "age")
print(oldValue) // Optional("17")
print(dict["age"]) //Optional("18")
複製程式碼
注:這個方法在實際專案中的使用場景還沒怎麼想到? 歡迎大家補充場景。 我也是看書之後才發現還有這種操作。
有用的字典方法
字典的合併 merge
let newDict = ["name":"Jane","age":"19","gender":"M"]
dict.merge(newDict) { (dictValue, newDictValue) -> String in
print(dictValue) // liaoworking 相同key時候的dictValue
print(newDictValue) //Jane 相同key時候的newDictValue
return newDictValue //返回你覺得應該選擇的value 我這裡預設都是newDictValue
}
print(dict)["name": "Jane", "age": "19", "gender": "M"]
複製程式碼
注:閉包裡面的處理是邏輯是當兩個dict 有相同的key return出我們覺得合適的value.
字典value的處理 mapValues
///字典的map方法
let mapDict = dict.mapValues { (value) -> String in
return "new"+value
}
print(mapDict)//["name": "newliaoWorking", "age": "new18"]
複製程式碼
這裡的使用邏輯和陣列中的map類似 不贅述。