首页 > 代码库 > Swift 协议(protocol)和扩展(extension)
Swift 协议(protocol)和扩展(extension)
协议
Swift 使用protocol
定义协议:
1 protocol ExampleProtocol {
2 var simpleDescription: String { get }
3 mutating func adjust ()
4 }
类型、枚举和结构都可以实现(adopt)协议:
1 class SimpleClass: ExampleProtocol {
2 var simpleDescription: String = "A very simple class." var anotherProperty: Int = 69105
3 func adjust () {
4 simpleDescription += " Now 100% adjusted."
5 }
6 }
7 var a = SimpleClass ()
8 a.adjust ()
9 let aDescription = a.simpleDescription
10
11 struct SimpleStructure: ExampleProtocol {
12 var simpleDescription: String = "A simple structure"
13 mutating func adjust () {
14 simpleDescription += " (adjusted)"
15 }
16 }
17 var b = SimpleStructure ()
18 b.adjust ()
19 let bDescription = b.simpleDescription
扩展
扩展用于在已有的类型上增加新的功能(比如新的方法或属性),Swift 使用extension
声明扩展:
1 extension Int: ExampleProtocol {
2 var simpleDescription: String {
3 return "The number \(self)"
4 }
5 mutating func adjust () {
6 self += 42
7 }
8 }
9 7.simpleDescription
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。