The Optional type is an enumeration with two cases. .none is equivalent to the nil literal. .some(Wrapped) stores a wrapped value. You must unwrap the value of an Optional before you can use it.

Common ways to unwrap an Optional safely are:

• Optional Binding: if let ...
• Optional Chaining: if one?.two?...
• Nil-Coalescing: let a: Int = optional ?? 0
• Unconditional Unwrapping: let number = Int("42")!

Another method to safely unwrap an Optional is a combination of extension and Nil-Coalescing. Here is a simple extension which allows us to safely unwrap String: