对协议的扩展

来源:互联网 发布:2016mac如何切换输入法 编辑:程序博客网 时间:2024/04/29 09:29

//swift2.0 新特性 对协议的扩展

//定义一个协议
protocol 速度{
func 百公里加速时间() -> Double
}

//定义一辆车
struct 卡罗拉: 速度{
var 价格: Int
func 百公里加速时间() ->Double
{
return 3.0
}
}

//定义一辆车
struct 普锐斯 : 速度 {
var 价格: Int
func 百公里加速时间() ->Double
{
return 2.5
}
}

//创建车对象调用方法
let 卡罗拉1 = 卡罗拉(价格:100)
卡罗拉1.百公里加速时间()
//创建车对象调用方法
let 普锐斯1 = 普锐斯(价格: 150)
普锐斯1.百公里加速时间()

//对协议进行扩展
extension 速度 {

var 百公里加速排名: Int {    get{        return Int(百公里加速时间() * 20)    }}

}

卡罗拉1.百公里加速排名
普锐斯1.百公里加速排名

在这里 我们定义了一个叫做速度的协议 它有一个百公里加速时间的一个方法
我们定义了两个结构体 ,就是两辆车,遵守了这个协议 因此要实现协议中的方法。接下来
对协议进行扩展,所有遵守协议的类都有了对应的百公里加速排名
新增属性,再将其打印出来,说明对协议的扩展,会使遵循协议得类得新的属性或者方法

下篇文章补充下基础知识关于扩展的小问题

1 0
原创粉丝点击