集合类型 (数组和字典)
swift 学习第2天,今天主要看了集合类型,数组和字典, 记录了一些和OC的不同,一些Swift的特性(吐槽一下,Xcode写Swift相对于OC来说真是超级卡顿!)
ps. Swift 中,一个数据类型,可变不可变是由var(可变)和let(不可变)这两个关键字来推断(请注意这个词)出来的,并不像OC中那样有两个类区分.
推断这个词,是我在两天学习中脑海中浮现的次数较高的一个词,从定义,声明变量,到赋值,到下面即将写的很多地方,我们并没有很明确的去定义,或者说去确定/固定什么,大多是由系统推断出来的(在Xcode中使用var 声明一个变量,如果你没有在声明之后对其做出一些使它改变的操作,Xcode会提示你,它没有变,请用let修饰....),
数组(Array<SomeType>)
Swift 中的数组和OC中的数组类似,都是同种类型的有序的数据集合
- 创建一个空的Int型数组, 基本写法如下:
var someInts = [Int]();
[]
中主要定义类型, 但是我们通常只有在定义一个空数组时这样做. - 添加一个元素:
someInts.append(3);
someInts = []; // 置空, 但是类型不变,为声明时的类型
- 新东西,默认值,在声明一个数组时,可以告诉外界,这个数组默认有多少个元素,每个元素的默认起始值是多少:
someInts = []; // 置空, 但是类型不变
- 修改(只有在var关键字修饰下的操作),和OC一样通过下标取元素
- 遍历:
for item in threeDoubles{ }
我特喜欢swift的这个特性,只需要给变量名,系统自己赋值,少写很多东西(懒癌,请忽略...) - 如果想同时获取下标和对应下标的值可以这样:
// 同时获取索引 和 内容 enumerate()用这个方法, (index,value) 是一个元组(出现了!) 又出现了推断.... 不得不说,还蛮好用的(顺便谁能告诉我markDown语法代码块怎样换行,好蛋疼!)
for (index,value) in threeDoubles.enumerate() { print("Item \(String(index + 1)) : \(value)") }
字典 (Dictionary<KeyType, ValueType>)
- 创建一个字典:
var nameOfIntegers = [Int : String]()
应该没人会定义一个这样的空字典....
一般这样写var airports = ["SH":"PD","sh":"HQ"];
毕竟肯定得存东西的,我相信没人会声明一个空的玩... - 遍历: // 遍历 在遍历的同时 给airportCode 和 airportName (元组又出现了。。。)
for (airportCode,airportName) in airports { print("\(airportCode),\(airportName)") }
关于集合 就这么多,set 就不写了。。。。