Swift语法基础 #

一、Swift程序结构 #

一个基本的Swift程序由以下部分组成:

swift
import Foundation

let message = "Hello, Swift!"
print(message)

1.1 导入语句 #

使用 import 关键字导入模块:

swift
import Foundation
import UIKit
import SwiftUI

1.2 语句 #

Swift语句不需要分号结尾(但可以添加):

swift
let a = 10
let b = 20; let c = 30

1.3 代码块 #

使用大括号 {} 定义代码块:

swift
if true {
    print("条件成立")
}

二、注释 #

注释用于解释代码,编译器会忽略注释内容。

2.1 单行注释 #

使用 // 开始:

swift
let pi = 3.14159

2.2 多行注释 #

使用 /* */ 包围:

swift
/*
 这是一个多行注释
 可以跨越多行
 用于详细说明代码功能
 */
let e = 2.71828

2.3 嵌套注释 #

Swift支持多行注释嵌套:

swift
/*
 外层注释开始
 /*
  内层注释
 */
 外层注释结束
 */
let nested = true

2.4 文档注释 #

使用 ////** */ 编写文档注释:

swift
/// 计算两个数的和
/// - Parameters:
///   - a: 第一个数
///   - b: 第二个数
/// - Returns: 两数之和
func add(_ a: Int, _ b: Int) -> Int {
    return a + b
}

/**
 用户信息结构体
 
 用于存储用户的基本信息
 */
struct User {
    let name: String
    let age: Int
}

2.5 MARK注释 #

使用 // MARK: 组织代码:

swift
// MARK: - 属性
var name: String = ""
var age: Int = 0

// MARK: - 初始化
init(name: String, age: Int) {
    self.name = name
    self.age = age
}

// MARK: - 公共方法
func introduce() {
    print("我是\(name)")
}

// FIXME: 需要优化性能
func processData() {
    
}

// TODO: 添加错误处理
func saveData() {
    
}

三、标识符 #

标识符用于命名变量、常量、函数、类等。

3.1 命名规则 #

Swift标识符的命名规则:

  1. 可以包含字母、数字、下划线
  2. 必须以字母或下划线开头
  3. 区分大小写
  4. 不能使用保留关键字(除非用反引号包围)
  5. 支持Unicode字符
swift
let name = "张三"
let _count = 10
let userAge = 25
let 用户名 = "李四"
let π = 3.14159
let 😊 = "happy"

3.2 命名规范 #

驼峰命名法 #

  • 小驼峰:变量、函数、方法
  • 大驼峰:类型(类、结构体、枚举、协议)
swift
let userName = "张三"
func calculateTotalPrice() { }

class UserManager { }
struct UserProfile { }
enum Direction { }
protocol Drawable { }

布尔类型命名 #

布尔类型通常以 ishasshould 等开头:

swift
var isEmpty: Bool = true
var hasPermission: Bool = false
var shouldUpdate: Bool = true

常量命名 #

全局常量使用大写字母和下划线:

swift
let MAX_CONNECTIONS = 100
let DEFAULT_TIMEOUT = 30.0

3.3 避免使用的命名 #

swift
let String = "Hello"
let count = 10
let data = []

四、关键字 #

关键字是Swift语言保留的特殊标识符,不能用作普通标识符。

4.1 声明关键字 #

关键字 用途
let 声明常量
var 声明变量
func 声明函数
class 声明类
struct 声明结构体
enum 声明枚举
protocol 声明协议
init 声明初始化器
deinit 声明析构器
extension 声明扩展
typealias 声明类型别名
associatedtype 声明关联类型

4.2 语句关键字 #

关键字 用途
if 条件语句
else 条件分支
switch 多分支语句
case switch分支
default 默认分支
for 循环语句
while 循环语句
do 执行块
repeat 循环语句
break 跳出循环
continue 继续循环
return 返回
throw 抛出错误
defer 延迟执行
guard 守护语句

4.3 访问控制关键字 #

关键字 用途
public 公开访问
private 私有访问
fileprivate 文件内私有
internal 模块内访问(默认)
open 开放访问
static 静态成员
final 不可重写

4.4 其他关键字 #

关键字 用途
import 导入模块
self 当前实例
Self 当前类型
super 父类
nil 空值
true/false 布尔值
in 闭包/循环
where 条件约束
as 类型转换
is 类型检查
try 错误处理

4.5 使用关键字作为标识符 #

如果必须使用关键字作为标识符,可以用反引号包围:

swift
let `class` = "这是一个类名"
let `func` = "这是一个函数"
print(`class`)

五、分号 #

Swift不强制要求分号,但以下情况需要:

5.1 同一行多条语句 #

swift
let a = 1; let b = 2; print(a + b)

5.2 可选的分号 #

swift
let x = 10
let y = 20;

六、空白与缩进 #

6.1 空白字符 #

Swift忽略多余的空白字符:

swift
let x=10
let x = 10
let x  =  10

6.2 缩进规范 #

使用4个空格或1个Tab进行缩进:

swift
func calculate(a: Int, b: Int) -> Int {
    if a > b {
        return a
    } else {
        return b
    }
}

6.3 行长度 #

建议每行代码不超过100个字符:

swift
let result = someVeryLongFunctionName(
    firstParameter: value1,
    secondParameter: value2,
    thirdParameter: value3
)

七、代码规范 #

7.1 命名规范 #

swift
class UserManager {
    static let shared = UserManager()
    
    private var currentUser: User?
    private var isLoggedIn: Bool = false
    
    func loginUser(username: String, password: String) -> Bool {
        return true
    }
}

7.2 函数规范 #

swift
func fetchUserData(
    userId: Int,
    completion: @escaping (Result<User, Error>) -> Void
) {
    
}

7.3 闭包规范 #

swift
let sorted = numbers.sorted { $0 < $1 }

let filtered = users.filter { user in
    user.age > 18 && user.isActive
}

7.4 类型注解 #

swift
let name: String = "Swift"
var count: Int = 0
var items: [String] = []
var dictionary: [String: Int] = [:]

八、SwiftLint代码检查 #

SwiftLint是Swift代码规范检查工具。

8.1 安装 #

bash
brew install swiftlint

8.2 配置 #

创建 .swiftlint.yml 文件:

yaml
disabled_rules:
  - trailing_whitespace
  - line_length

opt_in_rules:
  - empty_count
  - closure_spacing

line_length: 120

identifier_name:
  min_length:
    warning: 2
  max_length:
    warning: 40

8.3 使用 #

bash
swiftlint
swiftlint autocorrect

九、总结 #

本章介绍了Swift的基础语法:

  • 注释:单行、多行、文档注释
  • 标识符:命名规则和规范
  • 关键字:保留字及其用途
  • 代码规范:良好的编程习惯

最佳实践:

  • 使用有意义的命名
  • 添加必要的注释
  • 遵循Swift API设计指南
  • 使用SwiftLint保持代码一致性

下一章,我们将编写第一个Swift程序!

最后更新:2026-03-26