Initial commit
This commit is contained in:
54
skills/programming-swift/GuidedTour/Compatibility.md
Normal file
54
skills/programming-swift/GuidedTour/Compatibility.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Version Compatibility
|
||||
|
||||
Learn what functionality is available in older language modes.
|
||||
|
||||
This book describes Swift 6.2.1,
|
||||
the default version of Swift that's included in Xcode 26.1.
|
||||
You can use the Swift 6.2.1 compiler to build code
|
||||
that's written in Swift 6.2.1, Swift 5, Swift 4.2, or Swift 4.
|
||||
|
||||
When you use the Swift 6.2.1 compiler
|
||||
to build code that uses the Swift 5 language mode,
|
||||
you can use the new features from Swift 6.2.1 ---
|
||||
they're enabled either by default or by an upcoming feature flag.
|
||||
However, to enable strict concurrency checking,
|
||||
you need to upgrade to the Swift 6.2.1 language mode.
|
||||
|
||||
In addition,
|
||||
when you use Xcode 15.3 to build Swift 4 and Swift 4.2 code,
|
||||
most Swift 5 functionality is still available.
|
||||
That said,
|
||||
the following changes are available only to code
|
||||
that uses the Swift 5 language mode:
|
||||
|
||||
- Functions that return an opaque type require the Swift 5.1 runtime.
|
||||
- The `try?` expression doesn't introduce an extra level of optionality
|
||||
to expressions that already return optionals.
|
||||
- Large integer literal initialization expressions are inferred
|
||||
to be of the correct integer type.
|
||||
For example, `UInt64(0xffff_ffff_ffff_ffff)` evaluates to the correct value
|
||||
rather than overflowing.
|
||||
|
||||
Concurrency requires the Swift 5 language mode
|
||||
and a version of the Swift standard library
|
||||
that provides the corresponding concurrency types.
|
||||
On Apple platforms, set a deployment target
|
||||
of at least iOS 13, macOS 10.15, tvOS 13, watchOS 6, or visionOS 1.
|
||||
|
||||
A target written in Swift 6.2.1 can depend on
|
||||
a target that's written in Swift 5, Swift 4.2 or Swift 4,
|
||||
and vice versa.
|
||||
This means, if you have a large project
|
||||
that's divided into multiple frameworks,
|
||||
you can migrate your code to a newer language version
|
||||
one framework at a time.
|
||||
|
||||
<!--
|
||||
This source file is part of the Swift.org open source project
|
||||
|
||||
Copyright (c) 2014 - 2022 Apple Inc. and the Swift project authors
|
||||
Licensed under Apache License v2.0 with Runtime Library Exception
|
||||
|
||||
See https://swift.org/LICENSE.txt for license information
|
||||
See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
||||
-->
|
||||
Reference in New Issue
Block a user