Swift基础(一)
温馨提示:
本文最后更新于 2026年01月16日,已超过 16 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
1 常量和变量
1.1 常量(let)
1.1.1 常量的定义与特点
在 Swift 中,常量使用 let 关键字声明,一旦赋值后,值不可更改。
let maxCount = 10
特点:
- 只能赋值一次
- 编译期保证不可修改
- 提升代码安全性和可读性
- Swift 官方 强烈推荐优先使用常量
let name = "Swift"
// name = "iOS" ❌ 编译错误
1.2 变量(var)
1.2.1 变量的定义与特点
变量使用 var 关键字声明,值可以在运行过程中修改。
var score = 60
score = 80
特点:
- 可以多次修改
- 用于状态变化的场景
- 不必要的
var会降低代码安全性
1.3 常量与变量的使用建议
1.3.1 Swift 官方最佳实践
能用
let就不要用var
let width = 100
let height = 200
let area = width * height
2 类型安全和类型推断
2.1 类型安全(Type Safety)
2.1.1 什么是类型安全
Swift 是一门 强类型语言,变量类型一旦确定,就不能随意改变。
var age: Int = 18
// age = "18" ❌ 类型不匹配
优点:
- 编译期发现错误
- 减少运行时崩溃
- 提高代码稳定性
2.2 类型推断(Type Inference)
2.2.1 自动推断变量类型
Swift 可以根据初始值自动推断类型。
let name = "Tom" // String
let count = 10 // Int
let price = 9.9 // Double
不需要显式写类型,但类型已确定。
2.3 显式类型声明
2.3.1 何时需要显式类型
在以下情况建议明确声明类型:
- 没有初始值
- API 设计
- 提高可读性
var total: Int
total = 100
3 print函数
3.1 print 的基本用法
3.1.1 输出内容到控制台
print 用于将内容输出到控制台,常用于调试。
print("Hello Swift")
3.2 输出多个值
3.2.1 同时打印多个参数
let name = "Alice"
let age = 20
print(name, age)
输出:
Alice 20
3.3 字符串插值
3.3.1 使用 ( ) 拼接变量
print("我的名字是 \(name),年龄是 \(age)")
4 字符串操作
4.1 字符串定义
4.1.1 使用 String 类型
let greeting: String = "Hello"
或使用类型推断:
let message = "Welcome to Swift"
4.2 字符串拼接
4.2.1 使用 + 运算符
let first = "Hello"
let second = "Swift"
let result = first + " " + second
4.3 字符串插值
4.3.1 插入变量和表达式
let score = 90
let text = "成绩是 \(score + 10)"
4.4 常用字符串属性
4.4.1 判断是否为空
let str = ""
print(str.isEmpty) // true
4.4.2 获取字符串长度
let count = str.count
5 整数
5.1 Int 类型简介
5.1.1 Int 的特点
Int 用于表示整数,位数与当前平台相关(64 位设备通常为 64 位)。
let age: Int = 18
5.2 整数运算
5.2.1 基本算术运算
let a = 10
let b = 3
a + b // 13
a - b // 7
a * b // 30
a / b // 3(整数除法)
5.3 不同整数类型
5.3.1 Int8 / Int16 / Int32 / Int64
let small: Int8 = 10
let large: Int64 = 1000
6 双精度
6.1 Double 类型
6.1.1 Double 的定义
Double 表示 64 位浮点数,Swift 中默认小数类型。
let price = 9.99 // Double
6.2 Double 与 Float 的区别
6.2.1 精度对比
let a: Float = 3.14
let b: Double = 3.1415926535
- Double 精度更高
- 推荐优先使用 Double
6.3 类型转换
6.3.1 Int 与 Double 转换
let intValue = 10
let doubleValue = Double(intValue)
7 布尔
7.1 Bool 类型
7.1.1 Bool 的取值
Bool 只有两个值:
truefalse
let isLogin = true
7.2 Bool 常见使用场景
7.2.1 条件判断
if isLogin {
print("已登录")
} else {
print("未登录")
}
7.3 Bool 逻辑运算符
7.3.1 逻辑与 / 或 / 非
let a = true
let b = false
a && b // false
a || b // true
!a // false
8 运算符
8.1 算术运算符
8.1.1 基本算术运算
Swift 支持常见的算术运算符:
let a = 10
let b = 3
a + b // 加法:13
a - b // 减法:7
a * b // 乘法:30
a / b // 除法:3(整数除法)
a % b // 取余:1
⚠️ 注意:
- Int / Int 结果仍为 Int
- 小数运算需使用 Double 或 Float
8.2 赋值运算符
8.2.1 基本赋值
var x = 10
8.2.2 复合赋值运算符
x += 5 // x = x + 5
x -= 2
x *= 3
x /= 2
8.3 比较运算符
8.3.1 常用比较运算符
let a = 5
let b = 10
a == b // 等于
a != b // 不等于
a > b
a < b
a >= b
a <= b
比较结果为 Bool 类型。
8.4 逻辑运算符
8.4.1 逻辑与 / 或 / 非
let isLogin = true
let isVIP = false
isLogin && isVIP // 逻辑与
isLogin || isVIP // 逻辑或
!isLogin // 逻辑非
8.5 区间运算符
8.5.1 闭区间与半开区间
1...5 // 闭区间:1,2,3,4,5
1..<5 // 半开区间:1,2,3,4
常用于循环和数组遍历。
9 数组
9.1 声明数组
9.1.1 使用类型推断声明
var numbers = [1, 2, 3, 4]
9.1.2 显式声明数组类型
var names: [String] = ["Tom", "Jack", "Lucy"]
9.1.3 创建空数组
var scores: [Int] = []
9.2 下标访问数组
9.2.1 使用索引访问元素
let names = ["Tom", "Jack", "Lucy"]
names[0] // Tom
names[1] // Jack
⚠️ 注意:
- 数组索引从 0 开始
- 越界访问会导致 运行时崩溃
9.3 数组遍历
9.3.1 for-in 遍历
let numbers = [1, 2, 3]
for num in numbers {
print(num)
}
9.3.2 使用索引遍历
for i in 0..<numbers.count {
print(numbers[i])
}
9.4 追加元素
9.4.1 使用 append 添加元素
var list = [1, 2, 3]
list.append(4)
9.4.2 使用 += 追加多个元素
list += [5, 6]
9.5 插入和替换
9.5.1 指定位置插入元素
var arr = [1, 2, 3]
arr.insert(10, at: 1)
// [1, 10, 2, 3]
9.5.2 替换指定位置元素
arr[0] = 100
9.5.3 批量替换区间
arr[1...2] = [20, 30]
9.6 删除和查找
9.6.1 删除元素
var arr = [10, 20, 30, 40]
arr.remove(at: 1) // 删除指定索引
arr.removeLast() // 删除最后一个
arr.removeAll() // 清空数组
9.6.2 查找元素
let arr = [10, 20, 30]
arr.contains(20) // true
arr.first // Optional(10)
arr.last // Optional(30)
9.7 其他操作
9.7.1 获取数组长度
arr.count
9.7.2 判断数组是否为空
arr.isEmpty
9.7.3 数组排序
var nums = [3, 1, 2]
nums.sort() // 原地排序
let newNums = nums.sorted() // 返回新数组
9.7.4 高阶函数
let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 }
let filtered = nums.filter { $0 > 1 }
正文到此结束
- 本文标签: swift
- 本文链接: https://www.tianyajuanke.top/article/97
- 版权声明: 本文由吴沛芙原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权