swift关键字

static

1. static可以修饰class, struct,protocol, 函数
2. static,修饰的方法是不可重写的 因此不允许同时使用open修饰
3. static,修饰的方法采用直接派发

final

1. 不允许修饰结构体,procotol,函数
2. 采用直接派发
3. 被修饰的类或者方法,是不能被继承和重写的

dynamic

1. 动态的,同样不允许修饰class, struct,protocol
2. 采用dynamic修饰的函数和方法,会采用运行时消息机制派发

where

where一般用作条件限定。它可以用在for-in、swith、do-catch中
例如:
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for item in numbers where item % 2 == 1 {
    print("输出: \(item)")    // 将输出1,3,5,7,9等数
}

numbers.forEach { (item) in
    switch item {
    case let x where x > 7:
        print("输出: \(x)") // 将输出8和9
    default:
        break
    }
}

//只有UILabel才能实现此协议
extension SomeProtocol where Self: UILabel {
    func showParamA() {
        print(self.a)
    }

deinit

在Swift中,deinit属于析构函数,当对象结束其生命周期时(例如对象所在的函数已调用完毕),
系统自动执行析构函数。和OC中的dealloc一样的
例如:1.对象销毁
   2.KVO移除
   3.移除通知
   4.NSTimer销毁

defer

1. defer语句在代码块(方法、闭包等,可以理解为大括号包装起来的代码)作用域退出之前执行
2. 也就是代码块中其他应该执行的代码都执行完了才执行defer中的代码
3. 一个代码块允许多个defer,多个defer执行的顺序 从后到前

inout

目的是将值类型的对象用引用的方式传递。
例如:Int,CGFloat,Bool,Character,Array,struct等,这些值类型的对象都可以使用inout修饰,达到使用引用的方式传递的目的
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表达式中、类中、模式中, 还有以数...
    小宇宙_fly阅读 824评论 0 3
  • Swift 中有多少关键字? 在Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表...
    超级卡布达阅读 1,525评论 0 2
  • deinit: 当一个类的实例即将被销毁时,会调用这个方法。 extension:允许给已有的类、结构体、枚举、协...
    Rockerliang阅读 797评论 0 1
  • Swift关键字汇总如下: 一: 常见使用频繁的关键字: 1,访问修饰符:在swift中,访问修饰符有五种,分别是...
    物非0人非阅读 3,557评论 2 15
  • 作者:Jordan Morgan,原文链接,原文日期:2017-02-11 译者:郑一一;校对:numbbbbb,...
    iOS亮子阅读 658评论 0 1