
Swift Functional Programming
By :

It is great that our function works with any type, but what if our API user tries to use the calculate
function on types that cannot be used in arithmetic calculations?
To mitigate this problem, we can use type constraints. Using type constraints, we will be able to enforce the use of a certain type. Type constraints specify that a type parameter must inherit from a specific class or conform to a particular protocol or protocol composition. Collections are examples of type constraints that we are already familiar with in the Swift programming language. Collections are Generics in Swift, so we can have arrays of Int
, Double
, String
, and so on.
Unlike Objective-C, where we could have different types in a collection, in Swift we need to have the same type that complies to the type constraint. For instance, the keys of a dictionary must conform to the Hashable
protocol.
We can specify type constraints with either of the following two syntaxes:
<T: Class> or <T: Protocol...