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 提供了 if、switch、for、while 等控制流结构。
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 基本语法的唯一捷径。