字典
- 定义
- 同样使用 [] 定义字典
- let 不可变字典
- var 可变字典
/*
OC定义字典:
NSDictionary *dict = @{key1: value1, key2: value2, ...};
swift定义字典:
var 数组名 = [key1: value1, key2: value2, ...]
let 不可变
var 可变
*/
//: 定义字典
var dict1 = ["name": "liudehua", "age": 54] //[String : NSObject]
var dict2 = ["name": "liudehua", "nickName": "huazai"] //: [String : String]
- 定义空字典
var dict4 = [NSString: Int]()
var dict5: [NSString: Int] = [:]
字典的遍历
//: 遍历字典的所有key
for n in dict1.keys {
print(n)
// print(dict1[n])
}
//: 遍历字典所有value
for k in dict1.values {
print("k === \(k)")
}
//: 遍历字典
for n in dict6 {
// print(n)
// print(n.0)
// print(n.1)
}
//: 开发中用的最多的遍历字典的方式
//: k, v 可以随便写,前面是 key,后面是 value
for (k, v) in dict1 {
print(k + "--- \(v)")
}
//: 跳过不关心的值
for (_, v) in dict1 {
print("对key不关心--- \(v)")
}
-
字典常用操作
- 赋值直接使用
dict[key] = value
格式 - 如果
key
不存在,会设置新值 - 如果
key
存在,会覆盖现有值
- 赋值直接使用
var dict7 = ["name": "zhangsan", "age": 12]
//: 访问字典中的元素
dict7["name"]
//: 当字典的key存在时,修改字典中的元素
dict7["age"] = 15
dict7
//: 当字典的key不存在时,会新增key和value
dict7["title"] = "king"
dict7
//: 删除字典中指定的key和对应的value
var dict8 = ["name": "zhangsan", "age": 13, "height": 1.74]
dict8.removeValueForKey("age")
dict8
//: let修饰的字典不能改变 cannot assign through subscript: 'dict9' is a 'let' constant
let dict9 = ["name": "zhangsan", "age": 15, "height": 1.74]
//dict9["name"] = "lisi"