美文网首页
swift-12字典

swift-12字典

作者: sunmumu1222 | 来源:发表于2017-08-30 09:05 被阅读9次

    我以前做的swift笔记, 之前都是整理在onenote上, 最近想到整理出博客. 也方便自己查找, 可以当做自己的一份文档.

    字典的定义 赋值

        func demo() {
            //oc定义字典使用 {}
            //swift中使用 []
            
            // [KEY: VALUE] -> [String: NSObject]
            let dict = ["name": "老张", "age": 15] as [String : Any]
            print(dict)
            
            //定义字典的数组  这种格式在 开发中使用的最多
            /**
                1 定义的最高节点是数组/字典
                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 就是将字符串变成唯一的 '整数' 便于查找 提高字典遍历的速度
            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
            // 提示 字典不能直接相加
            // 数组 可以直接相加
            // dict1 = dict1 + dict2
            
            // 思路 遍历dict2 一次设置
            // 如果KEY存在 会修改
            // 如果KEY 不存在 会新增
            for e in dict2 {
                dict1[e.key] = dict2[e.key]
            }
            print(dict1)
        }
    

    相关文章

      网友评论

          本文标题:swift-12字典

          本文链接:https://www.haomeiwen.com/subject/ljszdxtx.html