CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
SwiftUI 开发入门/课时/基础语法与类型
RawBlame
课时目录12 节

SwiftUI 开发入门

  1. 01Swift 与 SwiftUI 概览
  2. 02基础语法与类型
  3. 03控制流
  4. 04函数与闭包
  5. 05结构体、类与协议
  6. 06SwiftUI 视图
  7. 07状态管理
  8. 08导航与生命周期
  9. 09并发与 async/await
  10. 10数据持久化
  11. 11MVVM 与架构
  12. 12综合练习

基础语法与类型

可选型、元组、类型推断。

35 分钟

基础语法与类型

Swift 是静态类型语言:编译期检查类型安全,同时支持类型推断。对照 /roadmaps/swift-ui「基础语法」节点,掌握变量、常量、可选型与集合是读懂 SwiftUI 代码的前提。

学习目标

  • 区分 let 与 var,理解类型推断
  • 掌握 Optional 与解包方式
  • 使用数组、字典、元组与字符串插值
  • 了解类型别名与基础类型转换

核心概念

变量、常量与类型推断

let appName = "CodeRoadMap"       // 常量,不可重新赋值
var lessonCount = 12              // 变量
var score: Double = 98.5          // 显式类型注解

// 类型推断为 String,但可标注
let trackSlug: String = "swift-ui-essentials"

// 元组:多值组合
let lesson = (id: 1, title: "语法基础", duration: 35)
print("\(lesson.title),\(lesson.duration) 分钟")

Swift 用 let 优先不可变值,减少意外修改;SwiftUI 中 @State 包裹的变量例外,由框架管理变更。

可选型 Optional

var nickname: String? = nil       // 可能为 nil
nickname = "Coder"

// if let 安全解包
if let name = nickname {
    print("昵称: \(name)")
}

// nil 合并运算符
let displayName = nickname ?? "匿名用户"

// 可选链
struct User {
    var profile: Profile?
}
struct Profile {
    var bio: String
}
let user = User(profile: Profile(bio: "SwiftUI 学习者"))
print(user.profile?.bio ?? "暂无简介")

Optional 显式表达「可能为空」,编译器强制处理 nil,避免空指针崩溃。

集合与字符串

// 数组
var tags: [String] = ["Swift", "SwiftUI", "iOS"]
tags.append("Xcode")

// 字典
var settings: [String: Bool] = [
    "darkMode": true,
    "notifications": false,
]
settings["darkMode"] = false

// 遍历
for tag in tags {
    print(tag)
}

for (key, value) in settings {
    print("\(key): \(value)")
}

// 字符串插值与多行
let summary = """
    Track: \(appName)
    课时: \(lessonCount)
    标签: \(tags.joined(separator: ", "))
    """
print(summary)

SwiftUI 列表数据常用 [Item] 配合 Identifiable 协议;字典适合配置映射。

与 React/SwiftUI 对照

SwiftTypeScript / ReactSwiftUI 场景
let / varconst / let@State private var
String?string | undefined可选 API 字段
[T]
T[]
List / ForEach 数据源
[K: V]Record<K, V>环境配置、缓存
(a, b) 元组解构数组 [a, b]多返回值函数
???? / ||默认值回退

TypeScript 的可选属性 ? 与 Swift Optional 概念一致;React 组件 props 中的 title?: string 对应 Swift 的 title: String?。

练习

  • 定义 Lesson 元组数组,含 id、title、completed
  • 用 if let 与 ?? 处理可能为 nil 的用户昵称
  • 创建 [String: Int] 字典统计各 tag 出现次数
  • 用多行字符串输出 track 摘要信息

小结

Swift 类型安全 + Optional 显式空值 + 集合一等公民。 下一课控制流。见 swift-ui-essentials。

加载本节练习…
← 上一课Swift 与 SwiftUI 概览下一课 →控制流