Absence in the type system.
WHAT AN OPTIONAL IS
A type that may hold a value or nothing, expressed in the type itself.
WHY IT MATTERS
The compiler requires you to handle absence before using the value.
WHAT THAT ELIMINATES
The commonest runtime crash on platforms without it.
WHAT THE SAFE WAYS TO UNWRAP ARE
Binding it conditionally Requiring it early and exiting otherwise Providing a default Chaining, which yields nothing if any step is absent
WHAT FORCE UNWRAPPING DOES
Asserts the value is present, crashing if it is not.
WHEN IT IS DEFENSIBLE
When absence genuinely indicates a programming error, such as a resource that must exist in the bundle.
WHEN IT IS NOT
Anything derived from input, the network, or storage.
WHAT TO PREFER
Early exit, which keeps the main path unindented.
WHAT IMPLICITLY UNWRAPPED OPTIONALS ARE
Values declared optional but used as if present.
WHERE THEY APPEAR
Interface outlets, which are connected after initialisation.
WHAT TO AVOID
Using them beyond that.
WHAT TO ASK OF ANY FORCE UNWRAP
What happens if this is nothing?