Swift中的字典

2019-10-08  本文已影响0人  下班不写程序
  1. 使用 let 定义 不可变字典.
    2.使用 var 定义 可变字典.
    3.字典也是使用 [] 来表示.

1. 字典的定义、取值、赋值、移除

    func demo(){
        
        // 1. 定义一个OC 中的字典, key/value 都是字符串
        let dict = ["name": "老张", "age": "18"]
        print(dict)  // 结果: ["name": "老张", "age": "18"]
        
        // 2. 初始化一个 不可变的 指定类型的空字典
        let dict4 = [String: String]()
        let dict5: [String: String] = [:]
        let dict6: Dictionary<String, String> = [:]
        let dict7 = Dictionary<String, String>()
        
        // 3. 定义一个指定类型的字典, key/value 都是字符串
        let dict2: [String: String] = ["name": "老张", "age": "18"]
        print(dict2)  // 结果: ["name": "老张", "age": "18"]
        
        // 4. 定义一个指定类型的字典, 名字是String, 年龄是Int, 这种方式也是最常用的字典类型
        let dict3: [String: Any] = ["name": "老张", "age": 18]
        print(dict3)  // 结果: ["name": "老张", "age": 18]
        
        // 5. 通过key 获取value
        let name = dict3["name"]
        print(name)  // 结果:Optional("老张")
        
        // 6. 定义一个可变的空字典, 参考第二知识点内容:
        var dictM: [String: Any] = [String: Any]()
        
        // 7. 通过key移除value, 或者直接将对应key的value直接置位nil
        var dictM2: [String: Any] = ["name": "老张", "age": 18]
        dictM2.removeValue(forKey: "name")
        print(dictM2)   // 结果:["age": 18]
        // 或者
//        dictM2["name"] = nil
//        print(dictM2)   // 结果:["age": 18]
        
        /* 注意:
         通过 key 赋值 value, 如果 key存在与字典中, 直接对 value重新赋值; 若 key不存在与字典中, 直接添加一对新的键值对.  (五星重点!!!!!)
         */
    }

2. 字典的遍历(无序)

    func demo(){
    
        let dict: [String: Any] = ["name": "老张", "age": 18]
        // for -in 遍历
        for (k, v) in dict {
            print(k,v)
        }
        /*
         结果:
         name 老张
         age 18
         
         注意: 循环中的()里, 不管起什么名称, 第一位永远是key, 第二个永远是value
         */
    }

3. 字典的合并

    func demo(){
    
        let dict1 = ["name": "Tom"]
        var dict2: [String: Any] = ["sex": "man", "age": 18]
        
        // 合并的奥义: 就是遍历少元素个数字典, 添加到另一个字典里
        for (k, v) in dict1 {
            dict2[k] = v
        }
        print(dict2)
        // 结果:["name": "Tom", "sex": "man", "age": 18]
        // 分析:通过 key 赋值 value, 如果 key存在与字典中, 直接对 value重新赋值; 若 key不存在与字典中, 直接添加一对新的键值对.
    }
上一篇下一篇

猜你喜欢

热点阅读