Swift 基本语法(实战指南)

Swift 基本语法入门:从零开始构建你的第一行代码

如果你正在学习一门新的编程语言,Swift 无疑是一个非常值得投入精力的选择。它由苹果公司推出,不仅语法简洁优雅,而且性能卓越,是开发 iOS、macOS、watchOS 和 tvOS 应用的首选语言。对于初学者来说,掌握 Swift 基本语法是迈出第一步的关键。今天,我们就来系统地梳理一下这些核心概念,帮助你快速上手。

Swift 的设计哲学是“安全”与“直观”。它不像一些老派语言那样允许大量隐式转换和危险操作,而是通过类型推断、可选类型和编译时检查来预防错误。这就像一辆新车,虽然仪表盘复杂,但每一步操作都有明确提示,不会让你“一脚油门踩空”。


变量与常量:程序中的“容器”

在任何编程语言中,变量和常量都是存储数据的基本单位。Swift 中使用 var 定义变量,let 定义常量。这个命名方式其实很好记:var 代表可变(variable),let 代表不变(let)。

var userName = "Alice"
let appVersion = "1.2.3"

上面这段代码中,userName 是一个变量,可以随时修改;而 appVersion 是常量,一旦赋值就不能再改变。

💡 小贴士:常量更安全。当你确定某个值不会变化时,优先使用 let,这样编译器能帮你提前发现潜在错误。

Swift 支持类型推断,所以你不需要手动写类型。但如果你希望明确类型,也可以加上:

var age: Int = 25
var height: Double = 175.5
var isStudent: Bool = true

这里 Int 是整数类型,Double 是双精度浮点数,Bool 是布尔值。这些类型就像是不同规格的盒子,你得根据数据大小选择合适的盒子,才能装得下又不浪费空间。


数据类型详解:Swift 的“数据分类系统”

Swift 是强类型语言,这意味着每个变量都有明确的类型。这听起来有点严格,但实际开发中它能有效避免很多低级错误,比如把字符串当成数字去计算。

常见的基本数据类型包括:

类型 说明 示例值
Int 整数类型,根据平台自动调整 42, -100
Double 双精度浮点数,适合科学计算 3.14159, -0.001
Float 单精度浮点数,占用更少内存 1.23f
Bool 布尔类型,只有 true/false true, false
String 字符串类型,用于文本处理 "Hello, Swift!"
Character 单个字符 "A", "🌟", "🔥"
let pi: Double = 3.14159
let speed: Float = 120.5
let greeting: String = "欢迎来到 Swift 世界"
let firstLetter: Character = "S"

注意:String 类型支持 Unicode,所以可以轻松处理中文、emoji 等复杂字符。这在国际化开发中非常重要。


运算符与表达式:程序的“数学引擎”

运算符是程序中进行计算的工具。Swift 提供了丰富的运算符,包括算术、比较、逻辑等。

算术运算符

let a = 10
let b = 3

let sum = a + b         // 加法:13
let difference = a - b  // 减法:7
let product = a * b     // 乘法:30
let quotient = a / b    // 除法:3(整数除法)
let remainder = a % b   // 取模:1(余数)

⚠️ 注意:Int 类型的除法会自动向下取整,不会保留小数。如果你需要浮点结果,需要显式转换:

let floatQuotient = Double(a) / Double(b)  // 3.333...

比较与逻辑运算符

let x = 5
let y = 10

let isEqual = x == y      // false
let isNotEqual = x != y   // true
let isGreater = x > y     // false
let isLessOrEqual = x <= y // true

let isAdult = age >= 18   // 判断是否成年
let hasPermission = isAdult && hasID  // 且:两个都为真才返回 true
let canLogin = hasPermission || isTestUser  // 或:只要一个为真就返回 true

这些运算符就像电路开关,通过组合形成复杂的判断逻辑。在写条件语句时,它们是核心构件。


控制流:让程序“有头脑”

程序不能只是按顺序执行。我们常常需要根据条件做出选择,或重复执行某些操作。Swift 提供了 ifswitchforwhile 等控制流结构。

if 条件判断

let temperature = 25

if temperature > 30 {
    print("天气炎热,记得带伞")
} else if temperature > 20 {
    print("天气舒适,适合外出")
} else {
    print("有点凉,加件外套")
}

if 语句的括号是可选的,但为了清晰,建议保留。Swift 的 else if 是链式判断的好帮手,避免写多层嵌套。

switch 多路分支

let dayOfWeek = "Saturday"

switch dayOfWeek {
case "Monday":
    print("新的一周开始了")
case "Friday":
    print("快到周末啦!")
case "Saturday", "Sunday":
    print("周末快乐!")
default:
    print("工作日,加油")
}

switch 是 Swift 中非常强大且安全的结构。它要求所有情况都被覆盖,否则编译会报错。default 子句就是“兜底”的保险。

循环结构:for 与 while

// for-in 循环遍历数组
let fruits = ["苹果", "香蕉", "橙子"]

for fruit in fruits {
    print("今天吃 \(fruit)")
}

// for 循环(传统写法)
for i in 1...5 {
    print("第 \(i) 次循环")
}

// while 循环
var count = 0
while count < 3 {
    print("计数:\(count)")
    count += 1
}

1...5 是闭区间,包含 5;1..<5 是半开区间,不包含 5。这种语法简洁明了,非常适合循环场景。


创建数组与初始化:管理一组数据

当你需要处理多个相关数据时,数组就派上用场了。Swift 的数组是泛型集合,能自动管理数据类型。

// 创建空数组
var scores: [Int] = []

// 直接初始化
let colors = ["红色", "绿色", "蓝色"]

// 使用数组字面量
var names = ["张三", "李四", "王五"]

// 添加元素
names.append("赵六")

// 访问元素(下标从 0 开始)
print("第一个名字是:\(names[0])")

// 获取数组长度
print("总共有 \(names.count) 个人")

📌 提示:数组下标越界会触发运行时错误,Swift 会在编译阶段尽量帮你避免这类问题。

你也可以用 for-in 遍历数组:

for name in names {
    print("欢迎:\(name)")
}

这比传统的 for i in 0..<names.count 更简洁、更安全。


函数定义:封装可重用的逻辑

函数是将一段代码封装起来,方便重复调用的单元。在 Swift 中,函数定义清晰、语法简洁。

// 定义一个无参数、无返回值的函数
func greet() {
    print("你好,世界!")
}

// 调用函数
greet()

// 带参数的函数
func add(a: Int, b: Int) -> Int {
    return a + b
}

let result = add(a: 5, b: 3)
print("5 + 3 = \(result)")

// 带默认参数的函数
func sayHello(to person: String, with greeting: String = "你好") {
    print("\(greeting), \(person)!")
}

sayHello(to: "小明")           // 输出:你好,小明!
sayHello(to: "小红", with: "嗨") // 输出:嗨,小红!

函数参数名在调用时必须写,这增强了可读性。比如 add(a: 5, b: 3)add(5, 3) 更清楚表达意图。


小结:从语法到实践

今天我们系统学习了 Swift 基本语法的核心部分:变量与常量、数据类型、运算符、控制流、数组和函数。这些知识点构成了 Swift 编程的基石。掌握它们,你就具备了编写简单程序的能力。

记住,编程不是背语法,而是用逻辑解决问题。Swift 基本语法的设计,正是为了让你更专注于“怎么做”,而不是“怎么写”。当你熟练使用这些结构后,就能轻松构建出功能完整、逻辑清晰的应用。

未来你可以继续探索 Swift 的高阶特性,如结构体、类、协议、泛型等。但请别急,先把基础打牢。就像盖房子,地基越稳,楼才能越高。

现在,打开 Xcode 或在线 Playground,动手写几句代码吧。实践,是掌握 Swift 基本语法的唯一捷径。