//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.百公里加速排名
在这里 我们定义了一个叫做速度的协议 它有一个百公里加速时间的一个方法
我们定义了两个结构体 ,就是两辆车,遵守了这个协议 因此要实现协议中的方法。接下来
对协议进行扩展,所有遵守协议的类都有了对应的百公里加速排名
新增属性,再将其打印出来,说明对协议的扩展,会使遵循协议得类得新的属性或者方法
下篇文章补充下基础知识关于扩展的小问题