Swift Compiled language and SwiftPM
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
swift --versionswift package init --type executable
swift buildswift runswift testswift replswiftc <file>.swift -o <out>
swift package resolve
Concepts
- Package.swift manifest
- Sources/ targets
- .build/ binaries
- Output your program
Toolchain
swift --versionswift <file>.swift
swiftc <file>.swift -o <out>
swiftc -O <file>.swift
swift replswift run <target> <args>
swift build -c release
swift build --show-bin-path
swift test --filter <name>
swift test --parallel
Package manager
swift package init --name <name> --type
executable
swift package init --type library
swift package resolve
swift package update
swift package clean
swift package reset
swift package show-dependencies
swift package describe
swift package edit <dep>
.package(url: "<url>", from:
"1.0.0")
.executableTarget(name: "<name>")
.testTarget(name: "<name>Tests",
dependencies: ["<name>"])
// swift-tools-version: 6.0
Basics
let x = 1var x = 1let x: Double = 1
"Hi \(name)"
let (a, b) = (1, 2)
let r = 1...51..<5for i in 0..<n { }
while <cond> { }
if <cond> { } else { }
switch x { case 1: ... default: ... }
case 1...5, 10:func f(_ a: Int, b: Int = 0) -> Int { }
f(1, b: 2)let s = """..."""
print(x)Optionals
var x: Int? = nil
if let v = x { }
guard let v = x else { return }
x ?? <default>
x?.countx!if let x { }x.map { $0 + 1 }
Collections
let a = [1, 2, 3]
a.append(4)a[0]a.count / a.isEmpty
let d = ["k": 1]
d["k"]let s: Set = [1, 2]
a.map { $0 * 2 }
a.filter { $0 > 1 }
a.reduce(0, +)
a.sorted()a.compactMap { Int($0) }
for (i, v) in a.enumerated() { }
Types
struct P { var x: Int }
class C { var x = 0 }
enum D { case n, s }
case some(Int)protocol Shape { func area() -> Double }
extension P: Shape { }
init(x: Int) { self.x = x }
mutating func inc() { }
var area: Double { w * h }
final class C { }
struct Box<T> { var v: T }
func f<T: Comparable>(_ a: T) { }
{ (a: Int) -> Int in a * 2 }
@escapingErrors and async
func f() throws -> Int
do { try f() } catch { }
try? f()try! f()throw MyError.bad
enum MyError: Error { case bad }
defer { <cleanup> }
func f() async -> Int
await f()Task { await f() }
async let a = f()
withTaskGroup(of: Int.self) { g in }
actor Counter { }
@MainActor@main struct App { static func main() }
Recipes
swift package init --name hello --type executablecd helloswift run
# Package.swiftdependencies: [ .package(url: "https://github.com/apple/swift-argument-parser", from: "1.3.0")],# then: swift build
swift testswift build -c release.build/release/<name>
echo 'print("hi")' > t.swiftswift t.swift



