美文网首页
iOS开发 - 「Swift 学习」Dictionary集合类型

iOS开发 - 「Swift 学习」Dictionary集合类型

作者: 俺不是大佬儿 | 来源:发表于2021-11-26 14:42 被阅读0次

    Swift语言Dictionary集合类型的创建、遍历

    Swift 的字典类型是无序集合类型

    Dictionary创建

    一、创建空字典

    
    //创建空字典
            var namesOfIntNum:Dictionary<Int,String> = [Int:String]()//[key:Int,value:String]
            //判断字典是否为空 (count是否为0)
            if namesOfIntNum.isEmpty{
                print("The namesOfIntNum dictionary is empty.")
            }else {
                print("The namesOfIntNum dictionary is not empty.")
            }
            //打印: The namesOfIntNum dictionary is empty.
            namesOfIntNum[10] = "ten"// namesOfIntegers 现在包含一个键值对
    
    

    使用空字典字面量来创建一个空字典

    
    //如果上下文已经提供了类型信息,我们可以使用空字典字面量来创建一个空字典,记作[:](中括号中放一个冒号)
            namesOfIntNum = [:]
            // namesOfIntNum 又成为了一个 [Int: String] 类型的空字典
    
    

    二、字面量创建字典

    
    //用字典的字面量创建字典
            //[key:value,key:value]
            var airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]//airports这个字典字面量的任务是构造拥有两个初始数据项的字典,字典被声明为一种[String: String]类型,这意味着这个字典的键和值都是String类型
    
    

    和数组一样,我们在用字典字面量构造字典时,如果它的键和值都有各自一致的类型,那么就不必写出字典的类型

    airports字典也可以用这种简短方式定义:
    因为这个语句中所有的键和值都各自拥有相同的数据类型,Swift 可以推断出Dictionary<String, String>是airports字典的正确类型

    
            var airports = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
            //因为这个语句中所有的键和值都各自拥有相同的数据类型,Swift 可以推断出Dictionary<String, String>是airports字典的正确类型
    
    

    字典遍历

    一、for - in 遍历

    字典的遍历,使用for - in 循环来遍历字典中的键值对,每个字典中的数据项都以(key,value)元组的形式返回,可以使用临时常量或者变量来分解这些元组

    //用字典的字面量创建字典
            let airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
            //字典的遍历,使用for - in 循环来遍历字典中的键值对,每个字典中的数据项都以(key,value)元组的形式返回,可以使用临时常量或者变量来分解这些元组
            for (airportKey,airportName) in airports {
            
                print("字典遍历的结果:\(airportKey):\(airportName)")
                //打印
                /*
                 字典遍历的结果:YYZ:Toronto Pearson
                 字典遍历的结果:DUB:Dublin
                 */
            }
    

    二、enumerated 遍历

    字典使用enumerated()方法遍历 回将原有的键值对(key-value)以元组(index,(key,value))的形式返回其中的index是无序的

    //字典使用enumerated()方法遍历 回将原有的键值对(key-value)以元组(index,(key,value))的形式返回其中的index是无序的
            let airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
            for (index,(key,value)) in airports.enumerated(){
                print("遍历结果:\(index)-\(key):\(value)")
                //打印
                /*
                 遍历结果:0-YYZ:Toronto Pearson
                 遍历结果:1-DUB:Dublin
                 */
            }
    

    三、keys/values 遍历(可以提取字典的键值(key-value)对,并转换为独立的数组)

    可以单独遍历出字典里的所有keys 或者是 values值

    当只是需要使用某个字典的键集合或者值集合来作为某个接收Array实例的 API 的参数,可以直接使用keys或者values属性构造一个新数组

    遍历出所有的key

            let airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
    //遍历出所有的key
            let airportKeys = airports.keys
            for airportKey in airportKeys{//获取字典中所有的键
                print("airport key:\(airportKey)")
                //打印
                /*
                 airport key:YYZ
                 airport key:DUB
                 */
            }
    

    获取字典里的keys构造成数组

            let airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
    //获取字典里的keys构造成数组
            let airportKeyArray = [String](airports.keys)//获取字典里的键构造成新数组“airportKeyArray”
            print("airportAllKeys:\(airportKeyArray)")
            //打印:airportAllKeys:["YYZ", "DUB"]
    

    遍历出所有的value

    
            let airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
            let airportsValues = airports.values
            for airportName in airportsValues {//获取字典中的所有值
            
                print("airport name:\(airportName)")
                //打印
               /*
                airport name:Toronto Pearson
                airport name:Dublin
                */
            }
    
    

    获取字典里的所有的values构造成数组

    
            let airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
            let airportNameArray = [String](airports.values)//获取字典里的所有的值构造成新的数组“airportNameArray”
            print("airportAllValues:\(airportNameArray)")
            //打印:airportAllValues:["Toronto Pearson", "Dublin"]
    
    

    \color{gray}{努力码字,只为遇见你?!😏}

    相关文章

      网友评论

          本文标题:iOS开发 - 「Swift 学习」Dictionary集合类型

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