iOS开发 - 「Swift 学习」Dictionary集合类型创建、遍历

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

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

Dictionary创建

一、创建空字典


//创建空字典
        var namesOfIntNum:Dictionary = [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是airports字典的正确类型


        var airports = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
        //因为这个语句中所有的键和值都各自拥有相同的数据类型,Swift 可以推断出Dictionary是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集合类型创建、遍历)