0
0
Swiftprogramming~5 mins

Protocol as types in Swift - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is a protocol in Swift?
A protocol defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality. Classes, structs, or enums can adopt protocols to provide actual implementations.
Click to reveal answer
beginner
How can a protocol be used as a type in Swift?
You can use a protocol as a type to declare variables, constants, or function parameters. This means the value can be any instance of a type that conforms to that protocol.
Click to reveal answer
intermediate
Why use protocols as types instead of concrete types?
Using protocols as types allows for flexible and reusable code. It lets you write functions or variables that work with any type that meets the protocol’s requirements, not just one specific type.
Click to reveal answer
intermediate
Can you store different types conforming to the same protocol in one array?
Yes! Because the protocol can be used as a type, you can create an array of that protocol type and store different concrete types that conform to it.
Click to reveal answer
advanced
What happens if a protocol has associated types or Self requirements? Can it be used as a type?
Protocols with associated types or Self requirements cannot be used directly as types because the compiler needs to know the exact type. You can use generics or type erasure to work around this.
Click to reveal answer
Which of the following can be used as a type in Swift?
AA protocol without associated types
BA protocol with associated types
CA protocol with Self requirements
DNone of the above
What does it mean to use a protocol as a type?
AYou can create variables that hold any value conforming to that protocol
BYou can only use the protocol to define new protocols
CYou must use a concrete class or struct type
DProtocols cannot be used as types
Can you have an array of different types if they all conform to the same protocol?
AOnly if the types inherit from the same class
BNo, arrays must have elements of the same concrete type
CYes, if the array is typed as the protocol
DOnly if the protocol has no methods
Why might you choose to use a protocol as a type?
ATo make code slower
BTo write flexible code that works with many types
CTo avoid using any methods or properties
DTo force all types to be the same concrete type
If a protocol has an associated type, can you declare a variable of that protocol type directly?
AOnly if the associated type is Int
BYes, always
COnly if the protocol has no methods
DNo, you must use generics or type erasure
Explain how using a protocol as a type helps in writing flexible Swift code.
Think about how you can use one variable to hold many different types.
You got /4 concepts.
    Describe the limitation of using protocols with associated types as types and how to work around it.
    Consider why the compiler needs more information about the type.
    You got /4 concepts.