Swift2.2 学习笔记(六) ___接口和扩展
来源:互联网 发布:淘宝链接e22a 编辑:程序博客网 时间:2024/04/30 15:24
使用protocol来声明一个借口
protocol ExampleProtocol { var simpleDescription: String { get } mutating func adjust()}
类,枚举和结构都可以实现接口
class SimpleClass: ExampleProtocol { var simpleDescription: String = "A very simple class." var anotherProperty: Int = 69105 func adjust() { simpleDescription += "Now 100% adjusted." }}var a = SimpleClass()a.adjust()let aDescription = a.simpleDescriptionstruct SimpleStructure:ExampleProtocol { var simpleDescription:String = "A simple structure" mutating func adjust() { simpleDescription += "(adjusted)" }}var b = SimpleStructure()b.adjust()let bDescription = b.simpleDescription - 声明 SimpleStructure 时候 mutating 关键字来标记一个会修改结构体的方法。SimpleClass的声明需不要标记任何方法因为类中的方法会经常修改。 - 使用 extension来为现有的类型添加功能,必须添加一个计算机属性的方法。可以使用扩展来给任意类型添加协议,甚至是你从外部库或者框架中导入的类型。
extension Int: ExampleProtocol { var simpleDescription: String { return "The number \(self)" } mutating func adjust() { self += 42 }}print(7.simpleDescription)
可以使用其它命名类型一样使用接口名 – 列如,创建一个有不同类型但是都实现一个借口的对象集合。当处理类型是借口的值时,接口外定义方法不可用。
let protocolValut: ExampleProtocol = aprotocolValut.simpleDescription
即使protocolValut 变量运行时的类型是simpleClass,编译器会把它的类型当做ExampleProtocol。这表示你不能调用类在它实现的接口之外实现的方法或者属性。
0 0
- Swift2.2 学习笔记(六) ___接口和扩展
- Swift2.2 学习笔记(三) ___函数和闭包
- Swift2.2 学习笔记(四) ___对象和类
- Swift2.2 学习笔记(五) ___枚举和结构体
- Swift2.2 学习笔记(七) ___泛型
- Swift2.2 学习笔记(十三) ___函数
- Swift2.2 学习笔记(一) ___简单值
- Swift2.2 学习笔记(二) ___控制流
- Swift2.2 学习笔记(八) ___基础部分
- Swift2.2 学习笔记(十) ___字符串字面量
- Swift2.2 学习笔记(十一) ___集合类型
- Swift2.2 学习笔记(十二) ___控制流
- Swift2.2 学习笔记(九) ___基本运算符
- Swift2.2 学习笔记(十四) ___闭包
- Swift2学习:Swift概览6-协议和扩展
- swift2.0笔记2
- swift2 扩展
- Swift2.0--文档学习笔记
- POj 2750 线段树+DP(树形DP)
- Oc-语句总结(5)-NSnumber/NSvalue/NSDate
- 有已排好序的数组,要求输入数后按原来排序规律插入数组中
- poj2506 2010.2.17
- ARM处理器
- Swift2.2 学习笔记(六) ___接口和扩展
- hadoop中的一些概念——数据流
- 基于InfluxDB&Grafana的JMeter实时性能测试数据的监控和展示
- Java学习心得——jsp中引入css等格式的配置方法
- 常指针与常引用
- Java笔记---内部类的使用
- 棋牌游戏服务器架构: 详细设计(三) 数据库设计
- poj1079 2010.2.17
- IList和List的 区别