Skip to content

Latest commit

 

History

History
31 lines (22 loc) · 1.5 KB

18.0 - Protocols.md

File metadata and controls

31 lines (22 loc) · 1.5 KB

A protocol defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality. The protocol can then be adopted by a class, structure, or enumeration to provide an actual implementation of those requirements. Any type that satisfies the requirements of a protocol is said to conform to that protocol.

In addition to specifying requirements that conforming types must implement, you can extend a protocol to implement some of these requirements or to implement additional functionality that conforming types can take advantage of.

Protocols are declared using the protocol keyword:

protocol SomeProtocol {
    // protocol definition goes here
}

A type says that it implements a protocol by placing a colon after its name. Multiple protocols can be specified, and are seperated by colons:

struct SomeStructure: FirstProtocol, AnotherProtocol {
    // structure definition goes here
}

If a class has a superclass, list the superclass name before any protocols it adopts:

class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol {
    // class definition goes here
}

Previous Section | Back To Contents | Next Note