Swift 语言简介
在动手装环境之前,我们先认识一下 Swift 到底是什么、为什么值得学、能用它做什么。理解了背景,学习的时候会更有的放矢。
Swift 是什么?
Swift 是 Apple 在 2014 年 6 月的 WWDC 大会上正式发布的编程语言,用于替代此前用了 30 多年的 Objective-C,成为 iOS、macOS、watchOS、tvOS、visionOS 全平台应用的官方推荐语言。它在 2015 年 12 月开源,如今也能跑在 Linux 和 Windows 上,用于服务端开发。
诞生背景:一位编译器大师的梦想
Swift 的主要设计者是 Chris Lattner。这个名字你可能没听过,但他在编程语言界地位极高:
- LLVM 编译器框架的创始人——LLVM 是当今最重要的编译器基础设施,Clang、Rust、Swift 的底层都依赖它。
- Clang C/C++/ObjC 编译器的作者,Mac/Xcode 默认编译器。
- 2010 年开始,他在 LLVM 之上构思一门"既安全又好用"的新语言,这就是 Swift 的雏形。
- 2017 年他离开 Apple 短暂去了 Tesla 和 Google,后来又参与 SiFive(基于 RISC-V 的芯片公司)。
Swift 的设计吸收了 Rust(安全)、Haskell(模式匹配、类型类)、Python(可读性)、Objective-C(运行时与 Cocoa 兼容) 等语言的精华,既有现代语言的优雅,又有系统语言的性能。
Swift 的核心特点
- 类型安全:编译器在编译期就检查类型,几乎消灭了"运行时空指针"这类问题。
- 可选类型(Optional):这是 Swift 区别于绝大多数语言的核心特性。任何"可能为空"的值都要显式标注,强迫你处理 nil。
- 值类型优先:标准库里的 Int、String、Array、Dictionary 全是 struct(值类型),赋值即复制,线程安全。
- 性能接近 C++ :Swift 编译成原生机器码,不需要虚拟机,启动快、运行快。
- 现代语法:闭包、泛型、协议、模式匹配、属性包装器一应俱全,表达力极强。
- 交互式开发:Playground 让代码"边敲边看结果",非常适合学习和原型设计。
- SwiftUI:2019 年推出的声明式 UI 框架,几十行代码就能做出流畅的动画界面。
- 开源 + 跨平台:可在 swift.org 下载 Linux/Windows 版工具链,做服务端( Vapor )或脚本。
第一个 Swift 程序
说了这么多,先看一眼代码。Swift 的"Hello World"长这样:
// Swift 不需要 main 函数,顶层代码直接执行
print("Hello, World!")
print("你好, Swift!")
// 输出:
// Hello, World!
// 你好, Swift!和 C/Java 不同,Swift 不需要 main 函数——一个 .swift 文件里的顶层代码就是入口。也不需要 import 才能用 print(它是 Swift 标准库的全局函数)。这种"零样板"的设计让学习曲线特别平缓。
Swift 都用在哪?典型应用场景
- iOS / iPadOS App:微信、抖音、支付宝、淘宝的 iOS 版本大量使用 Swift。新启动的 App 几乎 100% 用 Swift。
- macOS 应用:Things、Bear、Craft 等知名 Mac 软件都是 Swift 写的。
- watchOS / tvOS / visionOS:Apple Watch 应用、Apple TV 应用、Vision Pro 空间应用。
- SwiftUI:Apple 全平台通用的声明式 UI 框架,代码量比传统 UIKit 少 50% 以上。
- 服务端 Swift:Vapor、Hummingbird 框架,跑在 Linux 上做 API 服务。
- 苹果官方工具链:Xcode 的一部分、Swift Playgrounds、Arduino 模拟器等。
Swift vs 其他语言
- vs Objective-C:Swift 语法现代,无 .h/.m 双文件,无方括号消息传递,有可选类型。新项目首选 Swift。但大量老项目还在用 OC,所以 iOS 工程师最好两种都会。
- vs Flutter (Dart):Flutter 跨平台(iOS+Android 一套代码),Swift 只覆盖 Apple 平台。但 Swift 编译的原生 App 体积更小、性能更稳、对系统新特性支持更快。
- vs Kotlin:两者设计哲学极其相似,Kotlin 是 Android 版的 Swift(或反过来)。学会一个,迁移到另一个 1~2 周即可。
- vs Rust:Swift 更友好(有 GC 不,Swift 是 ARC 自动引用计数)、上手更快;Rust 更极致(无运行时,内存零成本),适合系统底层。
Swift 的"安全"长什么样
Swift 反复强调自己是"safe"语言,具体体现在哪?看一个例子:
// Swift 的"安全"体现在很多细节里
var age: Int = 25 // 类型明确
// age = "二十五" // 编译错误,类型不匹配
var name: String? = nil // 显式声明"可能为空"
// print(name.count) // 编译错误:没解包就不能用
if let realName = name {
print(realName)
} else {
print("名字为空") // 这是合法的 Swift
}注意第二处:一个 String? 类型的变量,你想直接访问它的 count,编译器直接报错。在 Java/Python 里,类似的代码会在运行时抛 NullPointerException,而 Swift 把这类问题从运行期前移到了编译期。这就是"safe"的最大含义。
该不该学 Swift?
如果你的目标是做 iPhone/Mac 上的应用,Swift 几乎是唯一答案。即使你做跨平台(Flutter/React Native),也需要 Swift 来写原生插件、调试 iOS 特有问题。学完本系列,你将能独立用 SwiftUI 写出一个完整的小型 App、读懂大多数 Apple 官方示例代码、为上架 App Store 打下地基。
← 返回 Swift 教程目录
下一篇 Swift 环境搭建 →