Swift 关键字

以下是自己学习Swift 的一些记录,便于以后查找翻阅

一些关键字

  1. @escaping(es=ex向外,cape=海角)修饰闭包的关键字,这个关键字理解为逃跑,意思是这个闭包可以超出这个函数体的作用范围。
  2. @convention 字面意思是约定,在swift中调用Objectvie-C或者C的时候,要用这个关键字,才能把swift中的函数变量传入Objectvie-C或者C中。
  3. ?变量后面跟这个可以认为是可选值,这种情况实际使用的时候,要用一个常量去接受这个值,然后判断是否为空。
  4. !确认这个值是有的,程序员自己断定,但是实际有可能是没有的。
  5. :后面跟着类型,->跟返回类型。
  6. 泛型Type T相当于占位符,传入参数不会出现问题。
  7. as转换,as!强制转换,as?转换不成功返回nil
  8. (属性访问控制)private是类私有或则结构体私有(当前作用域),fileprivate是文件内私有,internal是target内访问,public表示公开,target可以继承(重写),但是在模块外只可以访问,open表示开放,在target外可以访问,也可以继承(重写)。
  9. final 保持原样
  10. typealias 别名。
  11. guard( 守卫)保证是你想要的条件,不想要的就返回。
    guard let request = request else {
    return
    }
  12. willset,didset用来监控oldValue,newValue,实现属性检测。
  13. extension类扩展,可以扩展属性和方法
  14. @available(iOS 9.0, macOS 10.11, tvOS 9.0, *)
  15. 有没有变异方法决定数组的可变课不可变
  16. 写时复制,对于真正用到,才分配内存
var diameter: Double {
      get { return radius * 2}
      set { radius = newValue / 2} 
}
radius // 10
diameter // 20
diameter = 1000
radius // 500 
  1. var colorToUse = userChosenColor ?? defaultColor

var radius: Double = 10 {
willSet { print("将要赋值中") }
didSet { diameter =radius * 2}
}
}
radius = 10 // 将要赋值中
diameter // 20.0 ```

  1. 便利初始化class Human { var finger: Int var toe: Int init(finger: Int, toe: Int) { self.finger = finger self.toe = toe } convenience init() { self.init(finger: 10, toe: 10) // 调用主初始化方法 } } var daDi = Human() daDi.finger // 10 daDi.toe // 10

你可能感兴趣的:(Swift 关键字)