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)