L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

swift-language

swift-language

Apply Optionals, Protocols, Extensions, and Type Safety patterns in Swift. Use when working with Swift Optionals, Protocols, Extensions, or type-safe APIs.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: swift-language description: Apply Optionals, Protocols, Extensions, and Type Safety patterns in Swift. Use when working with Swift Optionals, Protocols, Extensions, or type-safe APIs. metadata: triggers: files: - '**/*.swift' keywords: - protocol - extension - optional - guard - enum

Swift Language Standards

Priority: P0 (CRITICAL)

Implementation Guidelines

Optionals & Safety

  • Never Force Unwrap: Use guard let, if let, or nil coalescing (??) to safely unwrap.
  • Nil Comparison: Use value != nil instead of if let _ = value.
  • Implicitly Unwrapped: Avoid Type!. Use proper Type?.

Protocols & Extensions

  • Protocols as Blueprints: Protocols define blueprint; classes inherit implementation.
  • Composition over Inheritance: Prefer protocol composition with structs for better decoupling and performance.
  • Extensions: Implement conformance in extension: extension MyType: MyProtocol { ... }. Use extensions for clean code organization, not storage ( not use extensions for stored properties).
  • Protocol Witnesses: Explicitly implement all required members to satisfy witness table.

Type Safety

  • Avoid Any: Use generics or associated types instead for compile-time safety.
  • Enums: Prefer enums with associated values over multiple Optionals. Extract values via switch statement (e.g., case .success(let value):).
  • Value Types: Default to struct for value semantics and thread safety. Use class only when reference identity necessary or for inheritance. Structs copied; classes shared.

Anti-Patterns

  • No ! operator: Use safe unwrapping.
  • No -1 for failure: Use Optional.
  • No force cast (as!): Use conditional cast (as?).

References

Canonical response anchors

When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:

  • Default to struct

  • Never force unwrap

  • associated values

  • value types

  • Additional task-grounded exact anchors: extension MyType: MyProtocol; conformance

Skills enregistrées