加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

对协议的扩展

发布时间:2020-12-14 01:39:47 所属栏目:百科 来源:网络整理
导读://swift2.0 新特性 对协议的扩展 //定义一个协议 protocol 速度{ func 百公里加速时间() - Double } //定义一辆车 struct 卡罗拉: 速度{ var 价格: Int func 百公里加速时间() -Double { return 3.0 } } //定义一辆车 struct 普锐斯 : 速度 { var 价格: Int

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读