Introduction to Protocol-Oriented Programming in Swift
['Benoit Pasquier']
Benoit Pasquier - Swift, Data and more
protocol Transporter { var speed : Double { get } } struct Car : Transporter { var speed : Double = 80 } struct Horse : Transporter { var speed : Double = 40 } let car = Car () let horse = Horse () let transporters : [ Transporter ] = [ car , horse ] transporters . protocol Motorised { var tankCapacity : Int { get } } struct Car : Transporter , Motorised { var speed : Double = 80 var tankCapacity : Int = 60 } protocol Animal { var restTime : Int { get } } struct Horse : Transporter , Animal { var speed : Double = 40 var restTime : Int = 2 } protocol Animal { var restTime : Int { get } var canTransport : Bool { get } } extension Animal { var canTransport : Bool { return self is Transporter } }