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 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 fully 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:
An introduction to optional types
The need for optional types in Swift
Unwrapping an optional
Optional binding
Optional chaining