Swift 关于Protocol扩展的静态特性
来源:互联网 发布:淘宝上买steam游戏 编辑:程序博客网 时间:2024/05/14 18:34
实验样本代码
//声明一个协议protocol SharedString { func methodForOverride() -> Void func methodWithoutOverride() -> Void}//扩展协议,实现默认实现//注意方法methodWithoutOverride 中调用了 methodForOverride 方法,这里有一个上写文切换的问题extension SharedString { func methodForOverride() -> Void { print("��") } func methodWithoutOverride() -> Void { print("��") methodForOverride() print("��") }}//在String类的扩展中遵守并实现协议extension String:SharedString { func methodForOverride() -> Void { print(self) }}//创建字符串并切换上下文到SharedString协议let Shared:SharedString = "hello"Shared.methodForOverride()Shared.methodWithoutOverride()
变换不同代码得到的执行结果总结
重写协议扩展中定义的方法,协议扩展的静态特性保留了方法的原版盒被重写版本,你可以通过切换上下文获得不同的版本,同时对于没有重写的方法,可以保证其不变性。
我们可以遵循一个原则,把那些希望被重写的方法定义在协议中,那些不希望被复写的方法的定义和实现放在协议扩展中。
阅读全文
0 0
- Swift 关于Protocol扩展的静态特性
- Swift的protocol与协议扩展
- swift的protocol
- Swift中扩展extension与协议protocol
- [Swift 开发] 协议扩展(protocol Extension)
- Swift 关于protocol 协议 小解 拙见
- swift 关于protocol协议笔记实现
- 第六节 Swift 协议(Protocol)和扩展(Extension)
- 【iOS】Swift中扩展extension与协议protocol
- 【iOS】Swift中扩展extension与协议protocol
- [绍棠_Swift] Swift中扩展extension、协议protocol
- swift protocol
- swift protocol
- swift-protocol
- swift - protocol
- 有趣的Swift特性
- swift strinng的扩展
- Swift - 常用的扩展
- Git – fatal: Unable to create 'XXX/.git/index.lock’: File exists.的解决办法
- Python---对象
- spring restTemplate配置
- 防止CC攻击实战脚本
- iOS学习笔记之textfield判断是否是全汉字、全数字、全字母!
- Swift 关于Protocol扩展的静态特性
- 如何在Hue里面使用Sqoop的options-file
- lightoj 1370
- 新clone一个项目,添加到IDEA发现没有git项目管理
- XCUITest官方文档
- c语言中?和:是什么意思
- 2017-2-26
- XCode编译:pngcrush caught libpng error原因及解决方法
- typedef 函数指针的用法