Swift - 协议

本文详细探讨了Swift中的协议,包括协议中的属性、函数、协议的继承、协议组合、CaseIterable、CustomStringConvertible以及Any和AnyObject的概念。强调了协议属性的声明和实现、函数的使用、以及不同类型的类和结构体如何遵守协议。
摘要由CSDN通过智能技术生成

协议就是申明一些属性方法下标,然后让类,结构体,枚举去遵守,默认协议的内容必须全部接受,协议不能设置默认值

protocol PersonDelegate {
    func go()
    var name:String{ get set }
    var des:String{ get }
    subscript(index:Int) -> Int{ get set }
}

上述就是一个简单的协议,定义了一个函数go,两个属性,name,des,一个下标

协议中的属性

协议的属性只能用var来声明,实现的时候根据后面跟的类型来,类型只有{ get }(只读) { get set }(可读可写)两种,其中get是可以用let声明的,后面只需要用不小于声明的权限即可,比如{ get },也是可以用读写来实现的,所以某种意义来说{ get } {get set}的区别只在于get 可以声明get 也可以声明get set,而可读可写只能声明对应的可读可写

protocol PersonDelegate {
    var name:String{ get set }
    var des:String{ get }
}

struct Person : PersonDelegate {
    var name: String
    var des: String
}
var p = Person(name: "", des: "")
p.des = "这是小明"
print(p.des)

上述代码就是属性对应的实现,声明的des实际是只读的,但仍然可以声明成可读可写

协议中的函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值