Generic types can be incredibly useful, and they are also the basis of the Swift standard collection types (arrays and dictionaries); however, as mentioned in the introduction to this chapter, we have to be careful to use them correctly.
We saw a couple of examples in this chapter that show how generics can make our lives easier. The swapGeneric() function that was shown at the beginning of the chapter is a good use of a generic function because it allows us to swap two values of any type we choose, while only implementing the swap code once.
The generic List type is also a good example of how to make custom collection types that can be used to hold any type. How we implemented the generic List type in this chapter is similar to how Swift implements an array and dictionary with generics.
In the next chapter, we will look at error handling with Swift and how we can make...