1. Agreement
Swift uses protocol to define the protocol:
protocol Exampleprotocol { get } mutating func adjust ()}
Types, enumerations, and structs can all implement protocols:
classSimpleclass:exampleprotocol {var simpledescription:string="A very simple class."var anotherproperty:int=69105func Adjust () {simpledescription+="Now 100% adjusted."}}var a=Simpleclass () a.adjust ( ) Let Adescription=a.simpledescriptionstructSimplestructure:exampleprotocol {var simpledescription:string="A Simple Structure"mutating func adjust () {simpledescription+="(adjusted)"}}var b=simplestructure () b.adjust ( ) Let bdescription= B.simpledescription
2. Expansion
Extensions are used to add new functionality to existing types (such as new methods or properties), and Swift uses extension to declare extensions:
extension Int:exampleprotocol { var simpledescription:string { return"the Number \ (self)" } mutating func adjust () { $} } 7. simpledescription
Swift Learning 5---Protocol (Protocol) and extensions (extension)