programming-swift
Scannednpx machina-cli add skill kylehughes/the-unofficial-swift-programming-language-skill/programming-swift --openclawThe Swift Programming Language
The entire content of The Swift Programming Language (6.2.3) book by Apple. This is a comprehensive language reference and guide to the Swift programming language.
Documentation Structure
Getting Started (GuidedTour)
- About Swift (GuidedTour/AboutSwift.md): Understand the high-level goals of the language.
- Version Compatibility (GuidedTour/Compatibility.md): Learn what functionality is available in older language modes.
- A Swift Tour (GuidedTour/GuidedTour.md): Explore the features and syntax of Swift.
Language Guide
- The Basics (LanguageGuide/TheBasics.md): Work with common kinds of data and write basic syntax.
- Basic Operators (LanguageGuide/BasicOperators.md): Perform operations like assignment, arithmetic, and comparison.
- Strings and Characters (LanguageGuide/StringsAndCharacters.md): Store and manipulate text.
- Collection Types (LanguageGuide/CollectionTypes.md): Organize data using arrays, sets, and dictionaries.
- Control Flow (LanguageGuide/ControlFlow.md): Structure code with branches, loops, and early exits.
- Functions (LanguageGuide/Functions.md): Define and call functions, label their arguments, and use their return values.
- Closures (LanguageGuide/Closures.md): Group code that executes together, without creating a named function.
- Enumerations (LanguageGuide/Enumerations.md): Model custom types that define a list of possible values.
- Structures and Classes (LanguageGuide/ClassesAndStructures.md): Model custom types that encapsulate data.
- Properties (LanguageGuide/Properties.md): Access stored and computed values that are part of an instance or type.
- Methods (LanguageGuide/Methods.md): Define and call functions that are part of an instance or type.
- Subscripts (LanguageGuide/Subscripts.md): Access the elements of a collection.
- Inheritance (LanguageGuide/Inheritance.md): Subclass to add or override functionality.
- Initialization (LanguageGuide/Initialization.md): Set the initial values for a type's stored properties and perform one-time setup.
- Deinitialization (LanguageGuide/Deinitialization.md): Release resources that require custom cleanup.
- Optional Chaining (LanguageGuide/OptionalChaining.md): Access members of an optional value without unwrapping.
- Error Handling (LanguageGuide/ErrorHandling.md): Respond to and recover from errors.
- Concurrency (LanguageGuide/Concurrency.md): Perform asynchronous operations.
- Macros (LanguageGuide/Macros.md): Use macros to generate code at compile time.
- Type Casting (LanguageGuide/TypeCasting.md): Determine a value's runtime type and give it more specific type information.
- Nested Types (LanguageGuide/NestedTypes.md): Define types inside the scope of another type.
- Extensions (LanguageGuide/Extensions.md): Add functionality to an existing type.
- Protocols (LanguageGuide/Protocols.md): Define requirements that conforming types must implement.
- Generics (LanguageGuide/Generics.md): Write code that works for multiple types and specify requirements for those types.
- Opaque and Boxed Protocol Types (LanguageGuide/OpaqueTypes.md): Hide implementation details about a value's type.
- Automatic Reference Counting (LanguageGuide/AutomaticReferenceCounting.md): Model the lifetime of objects and their relationships.
- Memory Safety (LanguageGuide/MemorySafety.md): Structure your code to avoid conflicts when accessing memory.
- Access Control (LanguageGuide/AccessControl.md): Manage the visibility of code by declaration, file, and module.
- Advanced Operators (LanguageGuide/AdvancedOperators.md): Define custom operators, perform bitwise operations, and use builder syntax.
Reference Manual
- About the Language Reference (ReferenceManual/AboutTheLanguageReference.md): Read the notation that the formal grammar uses.
- Lexical Structure (ReferenceManual/LexicalStructure.md): Use the lowest-level components of the syntax.
- Types (ReferenceManual/Types.md): Use built-in named and compound types.
- Expressions (ReferenceManual/Expressions.md): Access, modify, and assign values.
- Statements (ReferenceManual/Statements.md): Group expressions and control the flow of execution.
- Declarations (ReferenceManual/Declarations.md): Introduce types, operators, variables, and other names and constructs.
- Attributes (ReferenceManual/Attributes.md): Add information to declarations and types.
- Patterns (ReferenceManual/Patterns.md): Match and destructure values.
- Generic Parameters and Arguments (ReferenceManual/GenericParametersAndArguments.md): Generalize declarations to abstract away concrete types.
Usage Notes
- Organized progressively: GuidedTour → LanguageGuide → ReferenceManual
License & Attribution
This skill contains content from The Swift Programming Language, distributed under the Apache 2.0 License.
Copyright © Apple Inc. and the Swift project authors.
This package is a derivative work that aggregates the original markdown content into a structure optimized for LLM context.
Source
git clone https://github.com/kylehughes/the-unofficial-swift-programming-language-skill/blob/main/programming-swift/SKILL.mdView on GitHub Overview
Provides the complete content of Apple's The Swift Programming Language (6.2.3). This skill serves as a comprehensive language reference and guide, helping you verify syntax, explore features, understand concurrency, and resolve compiler errors.
How This Skill Works
It exposes the book's structured topics—Getting Started, Language Guide chapters (Basics, Strings, Collections, Control Flow, Functions, Closures, Enumerations, Classes, Extensions, Protocols, Concurrency, Macros, Type Casting, etc.)—so you can quickly locate exact syntax and rules. It leverages canonical examples and terminology from the Apple reference for precise guidance.
When to Use It
- You need exact Swift syntax for a construct (e.g., if let, guard, or switch) from the official guide.
- You're researching a language feature or concept (Optionals, Generics, Protocols) as documented by Apple.
- You're debugging: you want canonical rules to interpret compiler errors.
- You're learning about Swift's concurrency model and asynchronous patterns.
- You're verifying edge cases or language rules for a formal reference in 6.2.3.
Quick Start
- Step 1: Open the programming-swift skill and navigate to the chapter you need (e.g., Concurrency, Optionals).
- Step 2: Copy the exact syntax or rule verbatim from the referenced section.
- Step 3: Paste into a Swift project or REPL, run it, and adjust based on real compiler feedback.
Best Practices
- Always cite the exact section or file path in the Swift Guide when cross-checking.
- Prefer the Apple-approved examples in the cited chapter over memory-based snippets.
- Confirm version-specific behavior matches 6.2.3 before applying in code.
- Use code snippets to experiment in a Swift REPL or IDE for validation.
- Document any deviations or notes when the topic spans multiple guide chapters.
Example Use Cases
- Refer to the Basics and Operators sections to implement basic arithmetic and comparisons in a new project.
- Lookup and apply Concurrency guidance to design async tasks with structured concurrency.
- Validate type casting and optional handling by checking the Type Casting and Optional Chaining chapters.
- Model data with Structures, Classes, and Extensions using examples from the Guides.
- Resolve a compiler error by reading the specific ErrorHandling and Initialization rules in the book.