When I first started using Swift, the concept that I had the most trouble learning was optional types. Coming from an Objective-C, C, Java, and Python background, I was able to relate most of Swift's features to how things worked in one of the other languages that I knew, but optionals were different. There really was nothing like optionals in the other languages that I used, so it took a lot of reading to fully understand them. While we briefly covered optionals in Chapter 2, Learning About Variables, Constants, Strings, and Operators, which gave a brief overview of what optionals are, we really need to cover them in more detail to really understand what optionals are, how to properly use them, and why they are so important in the Swift language.
In this chapter, we will cover the following topics:
What are optional types?
Why do we need optional types in Swift ?
How to unwrap an optional?
What is optional binding?
What is optional chaining?