# 2021-02-02| Swift | Protocols ###### tags: `swift` `gobelins` Equivalent de l'interface en Java ## Protocol simple, class simple ```swift protocol Proto1 { func start() func pause() func stop() } protocol Proto2 { func sayHello() func sayThanks() func sayBye() } class Move: Proto1 { func start() { } func pause() { } func stop() { } } class Speak: Proto2 { func sayHello() { } func sayThanks() { } func sayBye() { } } var moves: [Proto1] = [Move()] for m in moves { m.start() } func haveDiscussion(sentences: Proto2) { sentences.sayHello() } ``` ## Différents Protocols ```swift protocol MonProtocolAvecFonctionStatic { static func b() } protocol P { func a(_ p:Int) -> Int } protocol ProtocolInutile { func fonctionDeProtocolInutile() } ``` ## Class a protocols multiples ```swift class JeSuisUneClasseSansProtocol { } class JeSuisUneClasseRespectantUnProtocol:ProtocolInutile { func fonctionDeProtocolInutile() {} } class JeSuisUneClasseRespectantPlusieursProtocol:ProtocolInutile,P,MonProtocolAvecFonctionStatic { // Fonction provenant de 'ProtocolInutile' func fonctionDeProtocolInutile() {} // Fonction provenant de 'P' func a(_ p: Int) -> Int { return p } static func b() { print("from static") } } let sansProtocol = JeSuisUneClasseSansProtocol() let unProtocol = JeSuisUneClasseRespectantUnProtocol() unProtocol.fonctionDeProtocolInutile() let plusieursProtocol = JeSuisUneClasseRespectantPlusieursProtocol() plusieursProtocol.fonctionDeProtocolInutile() plusieursProtocol.a(3) JeSuisUneClasseRespectantPlusieursProtocol.b() ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up