Swift 基础语法
环境装好后,我们来系统过一遍 Swift 的基础语法。本章不涉及复杂概念,只讲程序"长什么样"——结构、注释、分号规则、关键字、命名规则。读完你就能看懂任何 Swift 代码的大致框架。
1. Swift 程序的基本结构
一个最小的 Swift 程序,只需要一行代码:
// Swift 的程序结构非常简单:顶层代码直接执行
// 不需要 package / import / main 函数
print("Hello, Swift!") // 一行就够
// 多行代码就多写几行
let name = "小明"
print("你好, \(name)")对比 C/Java/Go,Swift 几乎"零样板":
- 不需要 main 函数——文件顶层代码就是入口,Swift 自动调用。
- 不需要 import 才能用
print——标准库默认可见。 - 不需要包声明——文件名和模块名分开管理,不强制一致。
- 用花括号
{ }包裹代码块(后面会讲)。
2. 注释
Swift 的注释规则和 C/Java/JS 一致,但有一个独门绝活——多行注释可以嵌套,这在临时禁用一大段含注释的代码时特别方便:
// 单行注释:双斜杠,到行尾结束
/* 多行注释:用斜杠星号包裹
可以跨多行,
解释一大段逻辑时常用。 */
/* 嵌套注释!
/* 这是 Swift 的特色:多行注释可以嵌套 */
外层注释不会被提前结束 */
// 文档注释:三个斜杠,Xcode 会渲染成可点的说明
/// 计算两个数的和
/// - Parameters:
/// - a: 第一个加数
/// - b: 第二个加数
/// - Returns: 两数之和
func add(_ a: Int, _ b: Int) -> Int { a + b }三个斜杠 /// 是文档注释,Xcode/Quick Help 会把它渲染成可点击的说明,也能被 DocC 工具提取成网页文档。写公共 API 时强烈建议配上。
3. 分号:可有可无
和 Go/C/Java 不同,Swift 不要求语句以分号结尾,每行写一条语句就好。但如果你同一行写多条语句,需要用分号分隔。也允许每条语句后都写分号(从其他语言迁移过来的人会这样),只是不推荐:
// 推荐写法:每条语句一行,不带分号
let a = 1
let b = 2
print(a + b)
// 也允许在同一行写多条语句,用分号分隔
let x = 1; let y = 2; print(x + y)
// 但单独一条语句后加分号是合法的(只是不推荐)
let z = 10;
print(z)实际项目里 99% 的 Swift 代码不带分号。建议直接放下"必须加分号"的肌肉记忆。
4. 代码块与缩进
Swift 用花括号 { } 包裹代码块(函数体、if 体、循环体等),这点和 C/Java/JS 一致。左花括号建议跟在签名同一行,这是社区约定:
- 缩进用 4 个空格(Xcode 默认),不用 Tab。
- 多余的空行不影响语义,合理使用可提升可读性。
- Xcode 自动格式化(Ctrl+I)能帮你统一缩进。
5. Swift 的关键字
Swift 大约有 90 多个关键字(算上 context-sensitive 的),按用途分组记忆更容易:
// 声明相关
let pi = 3.14 // 常量
var count = 0 // 变量
func greet() {} // 函数
class Dog {} // 类
struct Point {} // 结构体
enum Direction {} // 枚举
protocol Runnable {} // 协议
typealias ID = String // 类型别名
// 控制流
if true {}
guard let n = Optional(1) else { fatalError() }
for i in 1...3 {}
while false {}
switch n { default: break }
// 错误处理
func load() throws {}
do { try load() } catch {}
// 其他重要关键字
defer { print("退出") }
import Foundation
extension Dog {}初学不用全部背,先把常见的 let、var、func、if、for、return、import 记住,其他用熟了自然就会了。和 Go 的 25 个关键字相比,Swift 关键字多很多,但每一个都对应一个明确特性。
6. 标识符命名规则
- 由字母、数字、下划线组成,不能以数字开头。
- 大小写敏感:
name和Name是两个不同的标识符。 - 支持 Unicode,可以用中文/emoji 当变量名(但不推荐生产代码使用)。
- 用反引号可以把关键字当变量名(极少用,知道即可)。
// 合法标识符:字母、数字、下划线,但不能以数字开头
let userName = "abc"
let _count = 5
let user2 = "def"
// 还可以用 Unicode 中文/emoji 当变量名(不推荐生产用)
let 名字 = "小明"
let 🐶 = "dog"
print(名字, 🐶)
// 用反引号可以保留字当变量名(极少用)
let let_ = 1
let `switch` = "关键字当变量名(用反引号)"7. 命名规范(社区约定)
Swift 没有强制,但社区有高度一致的约定:
- 变量、函数、属性:小驼峰,如
userName、fetchUser()。 - 类型(类、结构体、枚举、协议):大驼峰,如
UserAccount、Comparable。 - 常量:小驼峰,而不是 C 风格的
MAX_COUNT。Swift 推荐maxCount。 - 枚举值:小驼峰(Swift 3+),如
case pending、case approved。 - 文件名:大驼峰,如
UserManager.swift。
小结
这一章你了解了 Swift 程序的整体骨架:无 main、无分号、用花括号;知道了注释的写法(还能嵌套!);记住了关键字按用途分组。下一篇我们看 Swift 的变量与常量——这是写任何程序前必须搞清楚的事。
← 上一篇 Swift 环境搭建
下一篇 Swift 变量与常量 →