1、字典的创建和初始化
2、创建空的字典
3、添加、修改和删除字典中的数据
4、根据key获取value
5、将value转换为特定的类型
6、枚举字典中的key和value
7、将key和value转换为数组
1 var employee1:Dictionary<String,String> = ["name":"bill","company":"Microsoft"] 2 println(employee1) //[company:Microsoft,name:bill]按照首字母顺序排序的。 3 4 var employee2 = ["name":"John","company":"Oracle","age":32]//不指定类型的情况下,可以设置为其它类型,比如integer 5 println(employee2);
1 var dict1 = ["product_name":"ice cream","price":5.5] 2 println(dict1) //price ="5.5; "product_name" = "ice cream",把5.5转换成了字符串。如果使用整数,在输出仍会保持整数。 3 4 var dict = Dictionary<Int, String>() //创建一个空字典 5 dict[20]="hello world" //没有20是填加,有20是修改。 6 println(dict) //[20:hello world] 7 8 dict = [:] //清空数组,key类型是int,value类型是string 9 10 dict[21]="abcd" 11 dict[20]="xyz" 12 println(dict) //[20:xyz,21:abcd] 13 14 if let oldValue = dict.updateValue("飞机“,forkey:21) //如果字典里有21,就会返回以前的值,如果没有21,就返回nil。在swift语句,if后面没有圆括号。 15 { 16 println("旧的值是\(oldValue)") //旧的值是abcd 17 } 18 println(dict) //[20:xyz,21:飞机] 19 println(dict.count) //2 20 21 let age1:Int = employee2["age"] as Int //age是unexpected 22 println(age1); //32 23 24 if let age2:int? = (employee2["age"]as? Int)//如果这个age不存在,那么将返回nil,但是int不能存nil,所以后加? //这里输出32,如果改成employee2["age1"],则返回不存在这个key. 25 { 26 println(age2) 27 } 28 else 29 { 30 println("在字典中不存在这个key") 31 }
1 dict[20] = nil //直接删除字典中的某一个key,对应value也同时被删除。key和value总是成对出现的。 2 println(dict) //[21:飞机] 20已经被删除 3 4 let oldValue = dict.removeValueForKey(21) //返回21对应的value 5 println(oldValue) // 飞机 6 7 //枚举字典中的key和value 8 for (key, value) in employee1 9 { 10 println("\(key):\(value)"); 11 } 12 13 for key in employee1.keys 14 { 15 println(key) 16 } 17 18 for key in employee2.keys //错误 ,employee2是隐式声明dict,所以会找不到keys 19 { 20 } 21 //转换一下 22 for key in (employee2 as Dictionary).keys 23 { 24 println(key) 25 } 26 27 for value in employee1.values 28 { 29 println(value) 30 } 31 dict[22] = "abc" 32 let keys = Array(dict.keys) 33 println(keys) //[22] 34 35 let values = Array(dict.values) 36 println(values) //[abc]
时间: 2025-01-08 14:13:30