// // main.swift // Swift字典总结 // // Created by Goddog on 15/7/14. // Copyright (c) 2015年 Goddog. All rights reserved. // import Foundation println("字典是一种存储相同类型多重数据的存储器。每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典") //MARK: - 创建字典 var dic:Dictionary<String,String>=["三国演义":"罗贯中","水浒传":"施耐庵","红楼梦":"曹雪芹","西游记":"吴承恩"] var dic1 = ["魏国":"曹操","蜀国":"刘备","吴国":"孙权"] println("创建字典方法一:\(dic),创建字典方法二:\(dic1)") //构造方法创建字典 var gzfa = Dictionary<Int,String>() //MARK: - 访问字典 var name = dic["三国演义"] println("根据字典的键得到值:\(name)") //MARK: - 向字典中添加建值 var myDict : Dictionary<String,String> myDict = Dictionary<String,String>() //添加 myDict["孔子"] = "孟子" println("创建一个字典并添加数据:\(myDict)") //修改 myDict.updateValue("论语",forKey: "孔子") println("修改之后是:\(myDict)") //删除 //myDict.removeValueForKey("孔子") myDict["孔子"] = nil println("删除之后是:\(myDict)") //MARK: - 遍历字典 for (key,value) in dic { println("键是:\(key),值是:\(value)") } //或 for t in dic1 { println("键是:\(t.0),值是:\(t.1)") } //单独访问key for key in dic.keys { println("key=\(key)") } //单独访问value for value in dic.values { println("value=\(value)") } var keys = Array(dic.keys) var values = Array(dic.values) println("key集合是:\(keys)") println("values集合是:\(values)") //MARK: - 字典类型的赋值和拷贝行为 /* 注意:字典和数组的拷贝是不同的 1.无论何时将一个字典实例赋给一个常量或变量,或者传递给一个函数或方法,这个字典会即会在赋值或调用发生时被拷贝。 2.如果字典实例中所储存的键(keys)和/或值(values)是值类型(结构体或枚举),当赋值或调用发生时,它们都会被拷贝。相反,如果键(keys)和/或值(values)是引用类型,被拷贝的将会是引用,而不是被它们引用的类实例或函数 */ myDict["老子"] = "道德经" var books = myDict println("myDict是:\(myDict),books是:\(books)") myDict.updateValue("道家",forKey: "老子") println("myDict是:\(myDict),books是:\(books)")
字典是一种存储相同类型多重数据的存储器。每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典 创建字典方法一:[红楼梦: 曹雪芹,西游记: 吴承恩,三国演义: 罗贯中,水浒传: 施耐庵],创建字典方法二:[吴国: 孙权,魏国: 曹操,蜀国: 刘备] 根据字典的键得到值:Optional("罗贯中") 创建一个字典并添加数据:[孔子: 孟子] 修改之后是:[孔子: 论语] 删除之后是:[:] 键是:红楼梦,值是:曹雪芹 键是:西游记,值是:吴承恩 键是:三国演义,值是:罗贯中 键是:水浒传,值是:施耐庵 键是:吴国,值是:孙权 键是:魏国,值是:曹操 键是:蜀国,值是:刘备 key=红楼梦 key=西游记 key=三国演义 key=水浒传 value=曹雪芹 value=吴承恩 value=罗贯中 value=施耐庵 key集合是:[红楼梦,西游记,三国演义,水浒传] values集合是:[曹雪芹,吴承恩,罗贯中,施耐庵] myDict是:[老子: 道德经],books是:[老子: 道德经] myDict是:[老子: 道家],books是:[老子: 道德经] Program ended with exit code: 0