我以前做的swift筆記, 之前都是整理在onenote上, 最近想到整理出博客. 也方便自己查找, 可以當做自己的一份文檔.
字典的定義 賦值
func demo() {
//oc定義字典使用 {}
//swift中使用 []
// [KEY: VALUE] -> [String: NSObject]
let dict = ["name": "老張", "age": 15] as [String : Any]
print(dict)
//定義字典的數(shù)組 這種格式在 開發(fā)中使用的最多
/**
1 定義的最高節(jié)點是數(shù)組/字典
2所有對象必須是 NSString NSNumber NSArray NSDictonary NSNull
3所有的KEY 都是 NSStrings
4NSNumber 不能為 nil 或則無窮大
*/
let array = [
["name": "李", "age": 15],
["name": "王", "age": 14]
]
print(array)
}
字典的增刪改
func demo1() {
// 可變 var 不可變 let
var dict = ["name": "張", "age": 18] as [String: Any]
//新增 如果KEY 不存在 就是新增
dict["title"] = "大哥"
print(dict)
//修改 字典中 是通過KEY 取值 KEY 在字典中必須是唯一的
//如果key存在 就是修改
dict["name"] = "西瓜西瓜"
//刪除 直接給定 KEY
// 科普 字典是通過 KEY 來定位值的 必須是可以 "hash" 哈希 MD5
// hash 就是將字符串變成唯一的 '整數(shù)' 便于查找 提高字典遍歷的速度
dict.removeValue(forKey: "age")
print(dict)
}
字典的遍歷
func demo2() {
let dict = ["name": "張", "age": 18, "title": "老師"] as [String: Any]
//元祖 (key: String, value: NSObject)
for e in dict {
print("\(e.key) \(e.value)")
}
/**
前面的 是 KEY
后面的 是VALUE
具體的名字可以隨便
oc遍歷 for in 只能獲取到KEY
*/
for (saf, abc) in dict {
print("\(saf) \(abc)")
}
}
字典的合并
func demo3() {
var dict1 = ["name": "張", "age": 18, "title": "老師"] as [String: Any]
let dict2 = ["name": "大瓜", "height": 1.9] as [String: Any]
// 將 dict2 合并到 dict1
// 提示 字典不能直接相加
// 數(shù)組 可以直接相加
// dict1 = dict1 + dict2
// 思路 遍歷dict2 一次設(shè)置
// 如果KEY存在 會修改
// 如果KEY 不存在 會新增
for e in dict2 {
dict1[e.key] = dict2[e.key]
}
print(dict1)
}