1.字典的定义
在Swift中的字典和我们所使用的《新华字典》是不同的,在Swift中的字典表示的是:一个集合,其元素为键值对。
2.创建一个字典
因为字典中的元素为键值对(key:value),所以“键”与“值”的类型可以各自指定可有以下形式:
var dict1 = [1:"one",2:"two",3:"three"]
var dict2:[Int:String] = [1:"one",2:"two",3:"three"]
var dict3:Dictionary<Int,String> = [1:"one",2:"two",3:"three"]
当然也可以定义为空:
var dict4:[Int:String] = [:]
var dict5:Dictionary<Int,String> = [:]
var dict6 = [Int:String]()
3.字典的基本操作
对于字典的一些基本操作可以参考代码:
var dict7 = [1:"one",2:"two",3:"three"]
print(dict7.count) //长度
print(dict7.isEmpty) //判断是否为空
print(dict7[1]!) //取值 (返回值是一个可选型,通过!进行解包)
//字典的特点:1)无序 2)键不能重复
let v1 = [1:"a",2:"b",3:"d"]
let v2 = [2:"b",1:"a",3:"d"]
print(v1 == v2)//判断是否一致
//-----------------
//输出结果为:
//3
//false
//one
//true
4.字典的增删改
字典中的updateValue:如果这个Key当前没有,添加操作;如果当前这个Key存在,修改操作
增删:
//改
var user=["name":"阿龙","age":"19","like":"look you"]
user["like"] = "你笑起来真好看"
print(user)
var updateV = user.updateValue("20",forKey:"age")!//返回原来value的值
if updateV == user["age"]{
print("修改后的年龄与修改前一样,可能会导致安全问题!")
}
print(user)
//输出结果
//["like": "你笑起来真好看", "name": "阿龙", "age": "19"]
//["like": "你笑起来真好看", "name": "阿龙", "age": "20"]
那么添加也可以用到updateValue:
//添加
user["like"] = "money"
user.updateValue("money",forKey:"friend")
print(user)
//输出结果
//["name": "阿龙", "like": "money", "friend": "money", "age": "20"]
//删除
user.removeValue(forKey:"like")
user["like"] = nil //null
print(user)
//输出结果
//["name": "阿龙", "friend": "money", "age": "20"]
5.遍历
用for in 遍历字典:
var dict = [1:"one",2:"two",3:"three"]
for (key, value) in dict1 {
print("\(key) : \(value)")
}
结果为:
1 : one
2 : two
3 : three
特别提示:
https://www.bccn.net/run/
使用网页编程此代码时,会发生顺序错误;作为小白的我也不知道为什么,好奇的朋友可以去试验一下~
6.总结
什么时候我们采用哪种类型?
我们所学过的类型已经有:数组、set和今天所学的字典,那他们各自的特点有哪些呢?
数组:有序的
set: 无序、唯一性、交集并集等集合专有的操作速度高
字典:key-value对
若有代码、理解错误处请指出,我一定会改哒~
私信我哦~
此文所用编辑器为网页编译。
点我,我就是网页编译~