swift的一些基本属性8 (字典)

-字典 

 字典的定义 — OC 中使用 {} --  Swift 中还是 []

An object that may be converted to JSON must have the following properties:

     - Top level object is an NSArray or NSDictionary

       顶级节点是 NSArray 或者 NSDictionary

     - All objects are NSString, NSNumber, NSArray, NSDictionary, or NSNull

        所有对象必须是 NSString, NSNumber, NSNull

        字典和数组中只能包含以上三种类型的值

     - All dictionary keys are NSStrings

         所有字典的 key 都必须是 NSString

     - NSNumbers are not NaN or infinity

         数值不能为空或者无穷大 (infinity)

func demo1() {

        // [String : NSObject] / [String : AnyObject] 在 Swift 开发中,非常普遍        

        let dict = ["name": "zhang", "age": 18]

        print(dict)

    }

 /// 字典的遍历

    func demo2() {

        let dict = ["name": "zhang", "age": 18]

        // 0 是 key

        // 1 是 value

        // 语义不直观

        for e in dict {

            print("\(e.0), \(e.1)")

        }

        /**

            前面的参数 key 是 KEY

            后面的参数 value 是 值

        */

        for (key, value) in dict {

            print("\(key) \(value)")

        }

    }

 /// 增删改

    /// 可变 var

    /// 不可变 let

    func demo3() {

        // 字典中的 key 是通过 hash 哈希值来取值的 - 在字典中 key 是唯一的

        var dict = ["name": "zhang", "age": 18]

        // 添加值 - 如果 key 不存在,新建值对

        dict["title"] = "boss"

        print(dict)

        // 修改值 - 如果 key 存在,覆盖原有值对

        dict["name"] = "老王"

        print(dict)

        // 删除

        dict.removeValueForKey("age")

        print(dict)

        // 还有一种删除方法

        dict["name"] = nil

        print(dict)

    }

目标,将 dict2 的内容合并到 dict1 中

         dict1 += dict2

         遍历字典2,依次设置数值

         遵守 key 唯一的原则,如果有,覆盖 / 如果没有 新建

  /// 拼接

    func demo4() {

        var dict1 = ["name": "zhang", "age": 18]

        let dict2 = ["title": "boss", "name": "老王", "height": 1.3】

         

        for (k, v) in dict2 {

            dict1[k] = v

        }

               print(dict1)

    }



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值