本篇作为Swift的第三篇,主要简述Swift中的结构体和类
struct 声明,建立在内存栈区(stack)Int Array Float Double Bool Dictionary Set String
这是Swift设计的独特之处. (dot syntax)存取结构体成员var 的成员,则该结构体也必须声明为 varinit 自定义结构体的初始化函数,如果自定义了,则原来的默认初始化函数将失效,除非自己再定义一遍.调用结构体中的方法extension 定义一个拓展,可以拓展结构体/类/枚举的属性和方法。它也允许拓展内建类型//结构体声明
struct 结构体名 {
var a: Double = 100.0 //可以指定默认值
let b: 可以为结构体类型
}
//结构体实例化
let c = 结构体名(a: 值, b:值) //Swift会自动生成这类初始化函数
//存取结构体成员
结构体名.a
结构体名.b.子成员
class 声明===,检查两个引用类型是否指向同一块内存区public:模块内和导入的模块均可用internal:模块内可用,导入的模块不可用,默认值private:定义所在的本文件内可用,文件级(file level,意味着把不同类定义在同一个文件一样可以存取其他类的private属性)override 声明重载函数super 代指父类,重载时最好先用 superfinal 声明的类将不允许被继承(Preventing inheritance)final 声明的方法将不允许被重载required 标记的初始化函数在子类中必须重载,说明这个初始化函数重要到所有继承链的类都要实现convenience 标记的初始化函数必须调用同类的其他初始化函数,它最终必须调用指定初始化函数,当需要调用其他初始化函数实现便捷初始化方法时用deinit 声明析构函数,和 init 不同,deinit 不是必须的,在对象被清出内存前被调用(Swift在引用计数为0时自动调用,按继承链逐一析构)weak 声明引起循环引用的属性/变量,默认是 strong