美文网首页
07 - 基础篇之字典

07 - 基础篇之字典

作者: flowerflower | 来源:发表于2017-12-14 23:21 被阅读41次

    一. 字典的介绍

    • 字典允许按照某个键来访问元素
    • 字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合
    • 键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的
    • Swift中的字典(Swift字典类型是Dictionary,也是一个泛型集合)

    二. 字典的初始化

    ○ 使用let修饰的数组是不可变字典
    ○ 使用var修饰的数组是可变字典

    三. 字典的增删改查

       // 3.对可变字典的操作
            //初始化
            var dictM = [String : Any]()
            // 3.1.添加元素
            dictM["name"] = "why"
            dictM["age"] = 18
            dictM["heihgt"] = 1.88
            dictM["weight"] = 75
            
            print(dictM) //["name": "why", "age": 18, "weight": 75, "heihgt": 1.8799999999999999]
    
            // 3.2.删除元素
            dictM.removeValue(forKey: "name") //["age": 18, "weight": 75, "heihgt": 1.8799999999999999]
    
            print(dictM)
            // 3.3.修改元素
            // 注意:如果有对应的key,则修改对应的value,如果没有对应的key,则添加对应的键值对
            dictM["age"] = 30
            print(dictM) //["age": 30, "weight": 75, "heihgt": 1.8799999999999999]
    
            // 3.4.获取元素
            print(dictM["weight"]!) //75
    

    四. 字典的遍历

           let dict = ["name":"flower", "age":20] as [String : Any]
              //遍历所有的key
            for key  in dict.keys {
                print(key) //            
            }
            /**
             name
             age
             */
    
            // 遍历所有的value
            for value in dict.values {
               print(value)
            }
            /**
             flower
             20
             */        
            // 遍历所有的key/value
            for (key, value) in dict {
                 print(key)
                 print(value)
            }
            /**
             name
             flower
             age
             20
    
             */
    

    五. 字典的合并

                    let tempDict  = ["phoneNum" : "110"] as [String : Any]
        //或者可写成:let tempDict1 : [String : Any] = ["phoneNum" : "110"]
            
            for (key, value) in tempDict {
                 dictM[key] = value
            }
            print(dictM) //["phoneNum": "110", "age": 30, "weight": 75, "heihgt": 1.8799999999999999]
    
    
    

    总结

    • 在swift中无论是数组还是字典都是使用[],但是如果[]中存放的是元素,编译器会认为是一个数组.如果[]中存放的是键值对,编译器会认为是一个字典
    • swift中任意对象,通常不使用NSObject,使用Any

    相关文章

      网友评论

          本文标题:07 - 基础篇之字典

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