The Swift Programming LanguageΒΆ
- The Swift Programming Language (6.2.3)
- About Swift
- Version Compatibility
- A Swift Tour
- The Basics
- Basic Operators
- Strings and Characters
- Collection Types
- Control Flow
- Functions
- Closures
- Enumerations
- Structures and Classes
- Properties
- Methods
- Subscripts
- Inheritance
- Initialization
- Deinitialization
- Optional Chaining
- Optional Chaining as an Alternative to Forced Unwrapping
- Defining Model Classes for Optional Chaining
- Accessing Properties Through Optional Chaining
- Calling Methods Through Optional Chaining
- Accessing Subscripts Through Optional Chaining
- Linking Multiple Levels of Chaining
- Chaining on Methods with Optional Return Values
- Error Handling
- Concurrency
- Macros
- Type Casting
- Nested Types
- Extensions
- Protocols
- Protocol Syntax
- Property Requirements
- Method Requirements
- Mutating Method Requirements
- Initializer Requirements
- Protocols that Have Only Semantic Requirements
- Protocols as Types
- Delegation
- Adding Protocol Conformance with an Extension
- Adopting a Protocol Using a Synthesized Implementation
- Implicit Conformance to a Protocol
- Collections of Protocol Types
- Protocol Inheritance
- Class-Only Protocols
- Protocol Composition
- Checking for Protocol Conformance
- Optional Protocol Requirements
- Protocol Extensions
- Generics
- The Problem that Generics Solve
- Generic Functions
- Type Parameters
- Naming Type Parameters
- Generic Types
- Extending a Generic Type
- Type Constraints
- Associated Types
- Generic Where Clauses
- Extensions with a Generic Where Clause
- Contextual Where Clauses
- Associated Types with a Generic Where Clause
- Generic Subscripts
- Implicit Constraints
- Opaque and Boxed Protocol Types
- Automatic Reference Counting
- Memory Safety
- Access Control
- Advanced Operators
- About the Language Reference
- Lexical Structure
- Types
- Expressions
- Statements
- Declarations
- Top-Level Code
- Code Blocks
- Import Declaration
- Constant Declaration
- Variable Declaration
- Type Alias Declaration
- Function Declaration
- Enumeration Declaration
- Structure Declaration
- Class Declaration
- Actor Declaration
- Protocol Declaration
- Initializer Declaration
- Deinitializer Declaration
- Extension Declaration
- Subscript Declaration
- Macro Declaration
- Operator Declaration
- Precedence Group Declaration
- Declaration Modifiers
- Attributes
- Patterns
- Generic Parameters and Arguments
- Document Revision History