Swift 学习笔记 [2] 类 结构体 枚举

结构体、枚举、类均有属性 方法 下表 构造器 嵌套类型 五中类型成员

enum

enum Season {
    case Spring = 1
    case Summer (description : String)
    case Fall
    case Winter 
}   

枚举的原始值 : 具体枚举等号右边的 rawValue
枚举的关联值
枚举递归: 枚举值包含的关联值类型本身又是枚举自身,需要使用 indirect 方法

类 结构体

[修饰符] class/struct  类型 {
    构造器
    属性
    方法
    下标
}

修饰 private/internal/public、 final

  1. final表示不可以被重载
  2. 枚举和结构体是值类型,所以尽量设计地轻量一点。类实例是引用类型
  3. 封装少量数据、自动复制副本、确定不需要继承和被继承 这三种情况下,使用结构体.
  4. 枚举不能实例存储属性
类计算、存储属性
[修饰符] var 计算属性名 : 属性类型 {
 get {
}
set(形参名){
}
}
[修饰符] var 存储属性名 : 属性类型 {
willSet (newValue){
}
didSet (oldValue){
}
}
  1. 值类型不可改变存储属性: mutating 暂时没用上,后续发掘此用法
  2. 数组字典访问方法,同一个类型定义多个下表,通过下表形参列表和返回值区分不同的下表。这个特别灵活,可以多想想这里的拓展用法,应该会有大惊喜
类下标访问
subscript ((形成列表) ->  下表返回值 ) {
    get {
    }
    set(形参名){
    }
}
class 和 static 修饰符
  1. class 和 static 修饰成类型成员、类型方法,
  2. 结构体和枚举只能使用static, 类可以使用 static 和 class
  3. 用static 不可被重写,用class修饰表示可以被子类重写。
错误处理

四种错误处理方法

  1. 传播给调用该函数的代码
    func procesFn () throw
    try processFn()
  2. do catch 捕获
    do {
    try expression
    } catch pattern 1 {
    } catch pattern 2 {
    }
  3. 将错误转成可选值
    func processFn() throw -> Int {
    }
    let try? processFn()
  4. 使错误失效。
    let try! processFn()
defer

定义: defer定义的函数内,在此函数完成后,立即再次调用defer 定义的代码块。

无关的话

学了还是要用,第一版Swift文档出来的时候,还凑热闹学了一次,现在都忘得差不多了。这次至少要做个小项目出来练练手才不至于生疏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值