Swift - 字典

字典是储存同一类型多个值的容器。每一个值都对应这一个唯一的键(Key),就像是字典内的每一个值都有一个标识符。和数组内的元素是有区别的,字典内的元素是没有特殊的序列的。当你需要根据标识符来查找批量的值时,就可以使用字典,和在真实世界的字典中寻找某个字的解释相似。

Swift字典储存一个特定类型的键和值,与Objective-C的NSDictionary 和NSMutableDictionary不同,因为它们是使用各种的对象来作为它们的键和值,而且并不提供任何有关对象的具体信息。在Swift中,对于一个特定的字典,它所能储存的键和值的类型都是确定的,无论是明确声明的类型还是隐式推断的类型。

Swift的字典写法是Dictionary<KeyType,ValueType>,KeyType是你想要储存的键的类型ValueType是你想要储存的值的类型

 唯一的限制就是KeyType必须是可哈希的(hashable)——就是提供一个形式让它们自身是独立识别的。Swift的所有基础类型(例如字符串(String),整形(Int),双精度(Double)和布尔(Bool))在默认是可哈希的(hashable),和这些类型都常常被当作字典的键。没有协助值(associated values)的枚举成员(具体描述在 Enumerations)默认也是可哈希的(hashable)。

> 注意

airport字典是被定义为一个变量(使用var 标识符)而不是常量(使用let 标识符),所以在下面的例子可以直接添加元素。

var air :Dictionary <String,String> = ["name":"beijing","age":"12"]  这个是定义了键类型,和值类型都是string类型

> 注意

 

Swift中的字典类型是非序列化集合,序列化取回键,值,或者键值对的顺序是不明确的。

 

 

1,字典  .count 是有多少个字典

2,修改字典里面的value值和添加一根键值对

//var air :Dictionary <String,String> = ["name":"beijing","age":"12","sex":"girl"]

air["name"] = "liaolijun"  //如果是直接用字典里面的key值,这个就是直接修改这个key的value值

//打印: [age: 12, sex: girl, name: liaolijun]

air["nickname"] = "liaolijun" //这个key值没有在字典里面,这个就是直接添加一根键值对

//打印: [age: 12, nickname: liaolijun, sex: girl, name: beijing]

 

3,去设置或者更新一个特定键的值 字典名.updateValue("" ,forKey:"")

if let oldvalue = air.updateValue("wujing", forKey: "name1"){

//这个key值如果不存在字典,则是添加键值对

    println("old value is \(oldvalue)") //如果是添加,那么这个判断不会打印

}

//打印: [name1: wujing, age: 12, nickname: liaolijun, sex: girl, name: beijing]

 

if let oldvalue = air.updateValue("wujing", forKey: "name"){

//这个key值如果存在字典,则是修改里面的value值,name这个key值是存在这个字典里面,所以这个是修改

    println("old value is \(oldvalue)") //oldvalue这个是接收删除的value值  oldvalue=liaolijun

}

//打印: [name: wujing, age: 12, nickname: liaolijun, sex: girl]

 4,删除

字典名 .removeValueForKey(key: Key(这个是你要删除的key值)

if let remove = air.removeValueForKey("age"){

    println("remove is \(remove)") //这个是删除的value值

}

//打印:[nickname: liaolijun, sex: girl, name: beijing]

 

 5,创建一个空字典

var name = Dictionary<Int ,String>()  //这个int是key的类型,string是value的类型

name[12] = "haha"

//打印 :[12: haha]

posted on 2015-06-16 15:26  廖利君  阅读(583)  评论(0编辑  收藏  举报