[swift学习之十一]协议语法练习

/*协议亮点及注意点:
 亮点1:协议可支持属性的写法。{get}或者{get set},不能不写或者只写set
 亮点2:协议可以作为一般类型的用途,如函数参数类型,变量类型,数组元素类型等。
 
 注意点
 1:协议里面不能写默认实现,扩展协议必须写默认实现。
 2:不论是协议本身还是协议的扩展,声明函数的参数都不支持默认值。
 3:结构体和枚举遵循协议的时候,要想改变其内部成员的值,需要加mutating关键字,类不需要。
 4:required关键字在类中使用,在结构体和枚举里面不能用。标示子类也得有这个构造方法。
 
*/
protocol 国际足球赛事 {
    var 参赛队数量:Int{get}
    static var 举办国家:String{get}
    init (赛事名称:String)
    func 名称() -> String
}
extension 国际足球赛事{
    mutating func 获取开幕式时间(年份:Int) -> String {
        return "2016-6-11"
    }
}
struct 结构体遵循:国际足球赛事 {
    var 赛事名称:String
    init(赛事名称: String) {
        self.赛事名称 = 赛事名称
    }
    var 参赛队数量: Int{
        return 32
    }
    static var 举办国家: String{
        return "法国"
    }
    func 名称() -> String {
        return self.赛事名称
    }
}


class 法国欧洲杯:NSObject, 国际足球赛事 {
    var 赛事名称:String
    required init(赛事名称: String) {
       self.赛事名称 = 赛事名称
    }
    override init() {
       self.赛事名称 = "法国2016欧洲杯"
    }
    var 参赛队数量: Int{
        return 24
    }
    class var 举办国家: String{
        get{
          return "法国"
        }
    }
    func 名称() -> String {
        return self.赛事名称
    }
}

func 获取足球赛事的名称(赛事:国际足球赛事) -> String {
    return 赛事.名称()
}
var 法国2016 = 法国欧洲杯()
获取足球赛事的名称(法国2016)

今天状态不好,勉强写了这些,感冒了。如果以后再遇到比较有用的地方,再添加吧。。。

参考:http://www.swiftvip.cn/guide/chapter2/22_Protocols.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值