苹果将Swift定义为一门面向协议编程的语言,协议在Swift中被赋予了更加强大、灵活的功能。相比于Objective-C的协议,Swift的协议不仅可以被用做代理,也可以用作对接口的抽象,代码的复用。
[Swift 协议 protocol 小结](https://www.jianshu.com/p/752e2bb198d0)
1、面向协议编程
---依赖倒置原则:告诉我们要面向接口编程
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
2、可选接口
Swift 中的protocol 所有方法都必须被实现,不存在@optional 这样的概念。为了实现可选接口有两个办法:(一)@objc 、(二)协议扩展
3、协议扩展 protocol extension
// 在Swift2以后,我们可以对一个已有的protocol进行扩展。而扩展中实现的方法作为“实现扩展的类型”的“默认实现”
// 通过提供protocol的extension,我们为protocol提供了默认实现,这相当于“变相”将protocol中的方法设定为了optional
4、mutating 修饰方法
枚举、结构体、类,都可以实现protocol。
实现多个协议使用协议组合
typealias DrinkExamProtocol = DrinkProtocol & ExamProtocol
枚举,扩展,属性不可保持只能get
extension
使用 defer 代码块来表示在函数返回前,函数中最后执行的代码。无论函数是否会抛出错误,这段代码都将执行。使用 defer,可以把函数调用之初就要执行的代码和函数调用结束时的扫尾代码写在一起,虽然这两者的执行时机截然不同。
以上内容来源于对
Swift 初见 的学习整理。算是学习Swift的入门引导。经过初步学习,达成了对Swift的初步认知。代码书写相较于Object-C来说更简便。基本通过链式编辑的方式coding。但是对闭包,可选值的理解还不够深刻。接下来,考虑开始以自建Swift项目和相关资料学习结合提升对Swift的理解。
网友评论