Generics in Swift are extremely powerful. With protocols, we are able to use a common interface to interact with various types that conform to the protocol. Also, when we use generics, we are able to create generic types that can accept instances of any type. When we combine protocols and generics, as we saw with the list types in this chapter, we are able to create very powerful libraries that meet both our present needs and our future needs.
Apple has stated that generics are one of the most powerful features of Swift and that much of the Swift standard library is built using generics. You should keep this in mind as you are writing your applications.
To manage memory within our applications, Swift uses Automatic Reference Counting (ARC). With ARC, for the most part, memory management in Swift simply works. There are instances where ARC requires additional information...