zoukankan      html  css  js  c++  java
  • swift学习第七天:字典

    字典的介绍

    • 字典允许按照某个键来访问元素
    • 字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合
    • 键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的
    • Swift中的字典
      • Swift字典类型是Dictionary,也是一个泛型集合
    import UIKit
    
    // 1.字典的定义
    // 1>不可变字典(let)
    // 注意:1:在swift中无论是数组还是字典都是使用[],但是如果[]中存放的是元素,编译器会认为是一个数组.如果[]中存放的是键值对,编译器会认为是一个字典. 2:如果字典中的value值的类型都是相同的,那么不用做类型转换,也就是不用加as [String : Any](字典和数组中都可以存放基本的数据类型,在swift中基本的数据类型也被看做是对象),如果在字典中的value值的类型都相同,则就不需要添加类型转换,转为as [String : Any]
    
    
    let dict = ["name" : "why", "age" : 18, "height" : 1.88] as [String : Any]
    
    let dictQ = ["hello":"1","bhe":"2","hahdfiasdf":"234"]
    
    
    
    
    // 2>可变字典(var):字典,数组,元组都是泛型集合,所以必须在初始化的时候,规定其里面的元素类型,如果规定value值是AnyObject,则对字典进行赋值的时候,dictM["age"] = 18 as AnyObject?,类型推到不能知道它是Int类型还是AnyObject类型,所以需要进行类型转换,as AnyObject?
    // var dictM = Dictionary<String, AnyObject>()
    var dictM = [String : AnyObject]()
    
    
    // 2.对可变字典的操作
    // 2.1.添加元素
    // dict["weight"] = 60 错误写法
    dictM["name"] = "why" as AnyObject?
    dictM["age"] = 18 as AnyObject?
    dictM["heihgt"] = 1.88 as AnyObject?
    dictM["weight"] = 75 as AnyObject?
    
    
    // 2.2.删除元素
    dictM.removeValue(forKey: "name")
    
    
    // 2.3.修改元素
    // 注意:如果有对应的key,则修改对应的value,如果没有对应的key,则添加对应的键值对
    dictM["age"] = 30 as AnyObject?
    dictM
    
    
    // 2.4.获取元素
    dictM["weight"]
    
    
    
    
    // 3.遍历字典
    // 3.1.遍历所有的key
    for key in dictM.keys {
        print(key)
    }
    
    // 3.2.遍历所有的value
    for value in dictM.values {
        print(value)
    }
    
    // 3.3.遍历所有的key/value
    for (key, value) in dictM {
        print(key)
        print(value)
    }
    
    
    
    // 4.合并字典
    // 注意:字典即使类型一直也不可以先加合并
    let tempDict : [String : AnyObject] = ["phoneNum" : "+86 110" as AnyObject, "sex" : "" as AnyObject]
    
    //let resultDict = tempDict + dictM
    
    for (key, value) in tempDict {
        dictM[key] = value
    }
    
    dictM
  • 相关阅读:
    人工智能学习笔记003-Python运算符
    人工智能学习笔记002-Python数据类型
    人工智能学习笔记001—python介绍
    dataclasses 笔记
    Js逆向-滑动验证码图片还原
    python3 marshmallow学习
    python 安装 SQLAlchemy 报错
    flask 与 SQLAlchemy的使用
    flask 与 flask_migrate的使用
    flask与flask-script的使用
  • 原文地址:https://www.cnblogs.com/cqb-learner/p/5884014.html
Copyright © 2011-2022 走看看