zoukankan      html  css  js  c++  java
  • 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]

  • 相关阅读:
    hdu 5534(dp)
    hdu 5533(几何水)
    hdu 5532(最长上升子序列)
    *hdu 5536(字典树的运用)
    hdu 5538(水)
    假如数组接收到一个null,那么应该怎么循环输出。百度结果,都需要提前判断。否则出现空指针异常。。我还是想在数组中实现保存和输出null。
    第一个登录页面 碰到的疑问
    浅谈堆和栈的区别
    Java中的基础----堆与栈的介绍、区别
    JS的Document属性和方法
  • 原文地址:https://www.cnblogs.com/liaolijun/p/4580915.html
Copyright © 2011-2022 走看看