You use optionals in situations where a value may be absent. An optional represents two possibilities: Either there is a value of explicitly or implicitly defined type, and you can unwrap the optional to access that value, or there isn’t a value at all.
In Swift only optionals can have a nil value(that is a representation of value absence).
Here is my own Swift Optional Type Implementing and some its functionality such as Force Unwrapping, Optional Chaining and Simplified Initialization with some examples of all it.
In this implementation I used such non-trivial Swift concepts such as Advanced Operators and Generics.
I implemented Optionals with Swift Enum, where .none is nil and optionalValue is Optional(). Force Unwrapping symbol "!" is "%" in my code and Optional Chaining can be done with using Optional~>\ .SomeProperty chain.
Also I simplified initialization - you don't need to write =Optional(someValue), instead you can just use "<-" symbol.
You can see some examples in my code if something remains unclear to you.