Swift基础(五)字典

来源:互联网 发布:三菱plc编程代码 编辑:程序博客网 时间:2024/05/19 13:18
// 字典
        // Swift的字典使用 Dictionary<KeyType, ValueType>定义,其中KeyType是字典中键的数据类型,ValueType是字典中对应于这些键所存储值得数据类型。各个值跟一个唯一的key关联,key在字典中是值得唯一标识。
        var airports: Dictionary<String, String>;
        // 创建了一个<String, String>类型的空字典,它的键是String类型,值是String类型
        
        // 字典字面值是将一个或多个key-value 对写成字典集合的简便方式。一个 key-value对是一个key与一个 value 的绑定。在字典字面值中,各个key-value用逗号隔开,并被中括号包围,key与value用冒号隔开
//        [key 1: value 1, key 2: value2, key 3: value 3];
        
        // 我们可以想数组一样使用构造语法创建一个空字典
        var namesOfIntegers1 = [:];
        
        // 下面创建一个字典来存储语言简写的名称
        var languageDic : Dictionary<String, String> = ["French" : "fr", "English" : "en"];
        // 也可以写成:
        // var languageDic = ["French": "fr", "English" : "en"];
        
        // 对字典的存取与修改可以通过字典的方法和属性来进行,或者使用字典的key来操作
        // 获取字典中包含数据项个数,可以通过点语法count
        var dicCount = languageDic.count;
        
        // 在字典中可以使用下标语法来添加新的数据项。可以使用一个合适类型的key作为下标索引,并且分配新的合适类型的值
        languageDic["German"] = "ger";
        // languageDic字典现在有3个数据项
        
        // 也可以使用下标语法来改变特定对应的值
        languageDic["German"] = "ge";
        // “German”对应的值被改为“ge”
        
        // 字典 updateValue(forKey:) 方法可以设置或者更新特定键对应得值。该方法在这个键不存在对应值得时候设置值,或者在存在时更新已存在的值,返回更新值之前的原值。这样方便我们检查更新是否成功
        let oldValue = languageDic.updateValue("Ge", forKey: "German");
        print(oldValue); // 输出: Optional(“ge”)
        
        // 可以通过检索特定的键来获取对应的值,如果不存在就返回nil,存在的话就返回该键对应的值。
        let englishShorthand = languageDic["English"];
        
        // 使用下标语法通过给某个键的对应值赋值为nil而从字典里移除一个键值对
        languageDic["English"] = nil;
        // English现在被移除了
        
        // 也可以使用removeValueForKey方法来移除字典中的键值对。这个方法在键值对存在的情况下会移除该键值对并返回被移除的value,键值不存在的情况下,返回nil
        let removedValue = languageDic.removeValueForKey("English");
        
        // 字典遍历,使用for-in循环来遍历某个字典中的键值对。每个字典中的数据项都由(key, value)元组形式返回
        for (language, shortahand) in languageDic {
            print("\(language) : \(shortahand)");
        }
        
        // 在这里,keys或者values属性其实都是一个数组集合,我们可以分别进行遍历
        // 遍历keys
        for language in languageDic.keys {
            print(language);
        }
        
        // 遍历values
        for shorthand in languageDic.values {
            print(shorthand);
        }
        
        // 如果需要使用某个字典的键集合或者值集合来作为某个接受Array实例API的参数,可以使用keys或者values属性值直接构造一个新数组
        let languageArray = Array(languageDic.keys);
        // languageArray is ["French", "German"]
        
        let shorthandArray = Array(languageDic.values);
        // shorthandArray is ["fr", "Ge"]
        
        // 由于Swift的字典类型是无序集合类型,因此字典中的键、值、键值对在遍历的时候也会重新排列,而且顺序是不固定的

0 0