对协议的扩展

//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.百公里加速排名

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

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

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...