结构体、枚举、类均有属性 方法 下表 构造器 嵌套类型 五中类型成员
enum
enum Season {
case Spring = 1
case Summer (description : String)
case Fall
case Winter
}
枚举的原始值
: 具体枚举等号右边的 rawValue
枚举的关联值
:
枚举递归
: 枚举值包含的关联值类型本身又是枚举自身,需要使用 indirect 方法
类 结构体
[修饰符] class/struct 类型 {
构造器
属性
方法
下标
}
修饰
private/internal/public、 final
类计算、存储属性
[修饰符] var 计算属性名 : 属性类型 { get { } set(形参名){ } } [修饰符] var 存储属性名 : 属性类型 { willSet (newValue){ } didSet (oldValue){ } }
- 值类型不可改变存储属性: mutating 暂时没用上,后续发掘此用法
- 数组字典访问方法,同一个类型定义多个下表,通过下表形参列表和返回值区分不同的下表。这个特别灵活,可以多想想这里的拓展用法,应该会有大惊喜
类下标访问
subscript ((形成列表) -> 下表返回值 ) { get { } set(形参名){ } }
class 和 static 修饰符
- class 和 static 修饰成类型成员、类型方法,
- 结构体和枚举只能使用static, 类可以使用 static 和 class
- 用static 不可被重写,用class修饰表示可以被子类重写。
错误处理
传播给调用该函数的代码
func procesFn () throw
try processFn()do catch 捕获
do {
try expression
} catch pattern 1 {
} catch pattern 2 {
}将错误转成可选值
func processFn() throw -> Int {
}
let try? processFn()使错误失效。
let try! processFn()
defer
定义: defer定义的函数内,在此函数完成后,立即再次调用defer 定义的代码块。
无关的话
学了还是要用,第一版Swift文档出来的时候,还凑热闹学了一次,现在都忘得差不多了。这次至少要做个小项目出来练练手才不至于生疏。