1.定义的定义

1> 不可变字典: let
2> 可变字典: var

2.对可变字典的基本操作

增删改查

3.遍历字典

1> 所有的key
2> 所有的value
3> 所有的key/value

4.字典合并

5.示例


// 1.如何定义字典
// 1> 定义不可变字典 : 使用let修饰
let a : Int = 10
// 编译器会根据[]中是一个个元素(数组),还是键值对(字典)
//let dict = ["name" : "why", "age" : 18, "height" : 1.88] as [String : Any]
//let dict = ["123" : "321", "abc" : "cba"] 不需要进行转化
// Array<String> --> [String]
// let dict : Dictionary<String, Any> = ["name" : "why", "age" : 18, "height" : 1.88]
// dict["phoneNum"] = "+86 110" 错误写法
let dict : [String : Any] = ["name" : "why", "age" : 18, "height" : 1.88] // 2> 定义可变字典 : 使用var修饰
// var arrayM = [String]()
// var dictM = Dictionary<String, Any>()
var dictM = [String : Any]() // 2.对可变字典的基本操作(增删改查)
// 2.1.添加元素
dictM["name"] = "why"
dictM["age"] = 18
dictM["height"] = 1.88
dictM // 2.2.删除元素
dictM.removeValue(forKey: "height")
dictM // 2.3.修改元素
dictM["name"] = "lmj"
dictM.updateValue("lnj", forKey: "name")
dictM // 2.4.查找元素
dictM["age"] // 3.遍历字典
// 3.1.遍历字典中所有的key
for key in dict.keys {
print(key)
} print("---------") // 3.2.遍历字典中所有的value
for value in dict.values {
print(value)
} print("---------") // 3.3.遍历字典中所有的key/value
for (key, value) in dict {
print(key, value)
} // 4.字典合并
var dict1 : [String : Any] = ["name" : "why", "age" : 18]
let dict2 : [String : Any] = ["height" : 1.88, "phoneNum" : "+86 110"] //let resultDict = dict1 + dict2
for (key, value) in dict2 {
dict1[key] = value
}

随机推荐

  1. C#指定时间和当前时间的相差的月份、天数

    DateTime 类型有时间的 年月日时分秒等属性,但是获取两个DateTime的 相差月份,就需要自己写了: public static int GetSubMonth(DateTime speci ...

  2. iOS的launch image --备用

    当我们打开一款应用程序的时候,首先映入眼帘的往往并不是程序的主界面,而是经过精心设计的欢迎界面,这个界面通常会停留几秒钟,然后消失.看似很平常的一个小小的欢迎界面,其实还大有讲究. 一.为什么会出现欢 ...

  3. C#中Thread.Join()的理解

    最近在项目中使用多线程,但是对多线程的一些用法和概念还有有些模棱两可,为了搞清楚查阅了一写资料,写下这篇日志加深理解吧. Thread.Join()在MSDN中的解释很模糊:Blocks the ca ...

  4. Struts2详细说明

    最近学习Struts2,阅读一些好的博客.收集有关. 原博文地址:http://blog.csdn.net/zz_mm/article/details/5460397 1.    深入Struts2的 ...

  5. javascript权威指南笔记[6-8]

    1.三类对象,两类属性 2.原型链只有在查询的时候才会体现 3.对象属性访问 4.属性赋值 5.delete只是断开属性和宿主对象的关系,不会去操作属性中的属性 6.Object.ke() var m ...

  6. activemq读取剩余消息队列中消息的数量

    先上原文链接: http://blog.csdn.net/bodybo/article/details/5647968  ActiveMQ在C#中的应用 ActiveMQ是个好东东,不必多说.Acti ...

  7. Hdoj 1425.sort 题解

    Problem Description 给你n个整数,请按从大到小的顺序输出其中前m大的数. Input 每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含 ...

  8. AE模板

    == 蓝色浩瀚星辰中一道光速展示企业LOGO AE模板 科技公司品牌开场动画. == 线条科技感图片商品介绍 Tech Grid Show免费下载 科技科幻风格. 产品介绍不错. == 炫光三维金属质 ...

  9. bfprt

    bfprt //找第k小的数 #include <iostream> #include <vector> #include <algorithm> using na ...

  10. mongo开发标准(待完善)

    MongoDB开发规范 1.mongoDB库的设计mongodb数据库命名规范:db_xxxx禁止使用任何 " _ "(下划线)外的特殊字符 禁止使用数字打头的库名 数据库名最多为 ...