-字典
字典的定义 — OC 中使用 {} -- Swift 中还是 []
An object that may be converted to JSON must have the following properties:
- Top level object is an NSArray or NSDictionary
顶级节点是 NSArray 或者 NSDictionary
- All objects are NSString, NSNumber, NSArray, NSDictionary, or NSNull
所有对象必须是 NSString, NSNumber, NSNull
字典和数组中只能包含以上三种类型的值
- All dictionary keys are NSStrings
所有字典的 key 都必须是 NSString
- NSNumbers are not NaN or infinity
数值不能为空或者无穷大 (infinity)
func demo1() {
// [String : NSObject] / [String : AnyObject] 在 Swift 开发中,非常普遍
let dict = ["name": "zhang", "age": 18]
print(dict)
}
/// 字典的遍历
func demo2() {
let dict = ["name": "zhang", "age": 18]
// 0 是 key
// 1 是 value
// 语义不直观
for e in dict {
print("\(e.0), \(e.1)")
}
/**
前面的参数 key 是 KEY
后面的参数 value 是 值
*/
for (key, value) in dict {
print("\(key) \(value)")
}
}
/// 增删改
/// 可变 var
/// 不可变 let
func demo3() {
// 字典中的 key 是通过 hash 哈希值来取值的 - 在字典中 key 是唯一的
var dict = ["name": "zhang", "age": 18]
// 添加值 - 如果 key 不存在,新建值对
dict["title"] = "boss"
print(dict)
// 修改值 - 如果 key 存在,覆盖原有值对
dict["name"] = "老王"
print(dict)
// 删除
dict.removeValueForKey("age")
print(dict)
// 还有一种删除方法
dict["name"] = nil
print(dict)
}
目标,将 dict2 的内容合并到 dict1 中
dict1 += dict2
遍历字典2,依次设置数值
遵守 key 唯一的原则,如果有,覆盖 / 如果没有 新建
/// 拼接
func demo4() {
var dict1 = ["name": "zhang", "age": 18]
let dict2 = ["title": "boss", "name": "老王", "height": 1.3】
for (k, v) in dict2 {
dict1[k] = v
}
print(dict1)
}