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) 

分享给朋友:
您可能感兴趣的文章:
随机阅读: