Tip #1: Implicit Optional Initialization
An optional var defaults to nil (p1), but not when its type is Optional (like p3) struct Demo { var p1: String? // defaults to `nil` let p2: String? // compiler error var p3: Optional<String> // compiler error let p4: Optional<String> // compiler error } Source