• 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) 
  • 相关阅读:
    java 无符号byte转换
    MySQL分区总结
    eclipse @override注解出错
    git 利用hook 实现服务器自动更新代码
    Centos 安装mysql
    Centos Python3安装共存
    chromedriver 代理设置(账号密码)
    PyQt5整体介绍
    python图片云
    PyPt5 浏览器实例
  • 原文地址:https://www.cnblogs.com/yutianqing/p/4591045.html
Copyright © 2020-2023  润新知