爱程序网

Swift 数组和字典

来源: 阅读:

数组: 中括号[ ] 表示,数组值之间用逗号分隔
          1、如果数组声明为常量,则本身不能修改,且数组中的值也不能修改
          2、指定数组的类型,语法:Array<Type> 可以简写为 [Type]
                    var typeArray1: [String]  
                    var typeArray1: Array<Int> = [1, 2, 3]  
          3、如果声明了数组,但是没有初始化该数组,是不能被引用的
                    var typeArray1: [String]       
                    println(typeArray1)  出错!!
          4、当检测到数组中元素类型相同时,则为 Swift 类型数组
                当 数组中元素类型 不相同时,则为 OC 的 NSArray 数组,
                         如果想变为NSMutableArray 则要显式的声明 : var myArray: NSMutableArray = [1, 2, “xyz"]
               var typeArray3: Array<Int> = [1, 3, “xyz”]  则是错误的,最后一个元素 不是整形
          5、var nullArray = []  创建的是 NSArray 的数组类型,因为Swift 编译器不能推导数组的类型
          6、创建 Swift 的 空数组
                    var nullArray1 = [Int]()
                    var nullArray2: Array<Float> = []
                    var nullArray3: [String] = []
          7、创建 初始化长度为 4 的 Int 类型的数组,且这四个元素都初始化为 2
                    var fourInts = [Int](count: 4, repeatedValue: 2)
          8、数组相加即为 合并数组
          9、数组区间赋值 : 可以同时对多个数组元素进行赋值
                    1)区间范围和 右侧赋值元素个数不同,元素多则插入,,,区间大则去除多余区间,,,
                    2)var arrayName[min..<max] = [item1, item2, item3]
                          max   和 min 超过了数组的上下边界,则直接抛出异常
          10、append、 insert、remoteAll 没有返回值
                  removeLast 、 removeAtIndex 有返回值,返回移除的值
                  empty 判断时候为空    count 计算元素个数
          11、可以用复合加法赋值  +=  来追加 数组的元素
          12、枚举数组中的元素
                    1) for…in   用变量 或者 下标都行
                     2) for (index, value) in enumerate(fourInts){}
字典:使用中括号[ ] , key—value 之间用逗号隔开, key: value 的形式
          1、如果字典中的 key 和 value 不是 String 类型,就不需要用双引号括起来
          2、var employ1: Dictionary<String, String> = [“name”: “bill”, “price”: “345"]
               var employ2: [String: String] ] =  [“name”: “bill”, “price”: “345"]
               var employ3 =  [“name”: “bill”, “price”: “345"]
          3、类型不同则为OC 类型NSDictonary , 若要NSMutableDictonary 则显式声明
          4、如果 let 声明,不仅意味着不能修噶字典本身,其字典中的值也不能修改 
          5、var nullDict1 = Dictionary<Int, String>()
                var nullDict2 = [Int: String]()
          6、dict[key] = value  有原来的 key 则 修改,没有则添加
          7、updateValue方法返回修改前的值
               dict[key] = nil  删除 key—value
               removeValueForKey 指定要删除数据的 key, 并且返回待删除数据 的  value
          8、 var dict1 = ["key1": "20", "key2": "abd"]
    // String 转换为 Int类型,转换时需要使用可选类型变量
        var value1:Int? = dict1["key1"]?.toInt()
 
        var dict2 = ["key1": "20", "key2": 123]
         // Int 类型的 NSObject 类型值转换为 Int 类型, 不需要可选类型而是要 加上 !
        var value2:Int = dict2["key2"] as! Int
         // String 类型 NSObject 类型 值 转换为 Int 类型,需要可选类型
        var value3:Int? = (dict2["key1"] as? String)?.toInt()
     9、for (key, value) in dict{}
        for key in dict.keys{}  keys、values 属性
        当字典类型变为 NSDictonary,可以先将其转换为 Dictionary,然后再使用keys 和 values属性获取相应的key  和 value
     10、将keys  和 values转换为 数组
           var dict = [“key1”: “val1”, “key2”: “val2"]
           let keys = Array(dict.keys) 

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助