开发经常用到这两个,从实现的角度来讲他们的功能吧!
protocol
protocol ExampleProtocol { var simpleDescription: String { get } mutating func adjust()}
类、枚举和结构体都可以实现接口。
先看一下类:
class SimpleClass: ExampleProtocol { var simpleDescription: String = "A very simple class." var anotherProperty: Int = 69105 func adjust() { simpleDescription += " Now 100% adjusted." }}var onesimp = SimpleClass()onesimp.adjust()
再看一下结构体:
struct SimpleStructure: ExampleProtocol { var simpleDescription: String = " struct" mutating func adjust() { simpleDescription += "(adjusted)" }}var onestruct = SimpleStructure()onestruct.adjust()
枚举也可以的:
enum SimpleEnum: ExampleProtocol { case first(String),second(String) var simpleDescription: String { get { switch self { case .first("first"): return "first" default: return "second" } } set { switch self { case .first("first"): self = .first(newValue) default: self = .second(newValue) } } } mutating func adjust() { switch self { case .first: self = .first("1" + "first") default: self = .second("2" + "second") } }}var oneEnum = SimpleEnum.first("lv")oneEnum.adjust()Extesion:
使用 extension 来为现有的类型添加功能,比如添加一个计算属性的方法。你可以使用扩展
来给任意类型添加协议,甚至是你从外部库或者框架中导入的类型。
extension Int: ExampleProtocol { var simpleDescription: String{ return "Int" } mutating func adjust() { self += 10 }}
使用起来特别方便,好好学习吧,加油!
如果转载请注明转于:AirZilong的博客
总结以上是内存溢出为你收集整理的Swift 接口和扩展(Protocol&Extension)全部内容,希望文章能够帮你解决Swift 接口和扩展(Protocol&Extension)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)