Swift Language Standards
Priority: P0
Implementation Guidelines
Optionals & Safety
- •Never Force Unwrap: Use
guard let,if let, or nil coalescing (??). - •Nil Comparison: Use
value != nilinstead ofif let _ = value. - •Implicitly Unwrapped: Avoid
Type!. Use properType?.
Protocols & Extensions
- •Protocol Composition: Prefer
struct+ protocols over class inheritance. - •Extensions: Use for conformance (
extension MyType: Codable), not storage. - •Protocol Witnesses: Explicitly implement all required members.
Type Safety
- •Avoid
Any: Use generics or associated types instead. - •Enums: Prefer enums with associated values over multiple Optionals.
- •Value Types: Default to
structunless reference semantics needed.
Anti-Patterns
- •Force Unwrapping:
**No ! operator**: Use safe unwrapping. - •Sentinel Values:
**No -1 for failure**: Use Optional. - •as! Casting:
**No Force Cast**: Use conditional cast (as?).