首页 > 代码库 > iOS-swift-协议和拓展
iOS-swift-协议和拓展
1 协议(protocol
)
使用关键字 protocol 创建协议。
protocol ExampleProtocol { var simpleDescription: String { get } mutating func adjust() }
类、枚举和结构体都支持协议。
lass SimpleClass: ExampleProtocol { var simpleDescription: String = "A very simple class." var anotherProperty: Int = 69105 func adjust() { simpleDescription += " Now 100% adjusted." } } var a = SimpleClass() a.adjust() let aDescription = a.simpleDescription struct SimpleStructure: ExampleProtocol { var simpleDescription: String = "A simple structure" mutating func adjust() { simpleDescription += " (adjusted)" } } var b = SimpleStructure() b.adjust() let bDescription = b.simpleDescription
注意关键字 mutating
,在结构体 SimpleStructure 中使用 mutating 实现协议中的方法。而在类中 SimpleClass,却不需要关键字 mutating 实现协议方法,因为类中方法本身就不需要关键字mutating 声明。
2 拓展(extension
)
使用关键字 extension 创建一个已存在类型的拓展。
extension Int: ExampleProtocol { var simpleDescription: String { return "The number \(self)" } mutating func adjust() { self += 42 } } print(7.simpleDescription)
恩,努力。
iOS-swift-协议和拓展
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。