SwiftUI中的数据类型和变量
变量和常量
SwiftUI中声明变量和常量的方式。
- Name
变量声明
- Type
- variable
- Description
- var: 可变变量
- let: 不可变常量
- @State: 状态变量
- @Binding: 绑定变量
- Name
作用域
- Type
- scope
- Description
- 全局变量
- 局部变量
- 实例变量
- 静态变量
变量声明示例
// 常量
let maxCount = 100
// 变量
var currentCount = 0
// 状态变量
@State private var score = 0
// 绑定变量
@Binding var isActive: Bool
基础数据类型
SwiftUI常用的基础数据类型及其特性。
类型 | 位数 | 范围 | 精度 | 用途 |
---|---|---|---|---|
Int | 32/64位 | -2^31 ~ 2^31-1 (32位) -2^63 ~ 2^63-1 (64位) | 整数 | 计数、索引 |
Double | 64位 | ±2.23x10^-308 ~ ±1.80x10^308 | 15-17位小数 | 高精度浮点计算 |
Float | 32位 | ±1.18x10^-38 ~ ±3.4x10^38 | 6-7位小数 | 普通浮点计算 |
String | 动态 | 取决于内存 | UTF-8编码 | 文本处理 |
Bool | 1位 | true/false | - | 逻辑判断 |
CGFloat | 与平台相关 | 同Float/Double | 同Float/Double | 图形计算 |
数据类型示例
// Int示例
let count: Int = 42
// Double示例
let pi: Double = 3.14159265359
// Float示例
let height: Float = 1.75
// String示例
let name: String = "SwiftUI"
// Bool示例
let isEnabled: Bool = true
// CGFloat示例
let width: CGFloat = 100.0
数据类型历史和特性
各数据类型的发展历程和特点。
- Name
Int演变
- Type
- int-history
- Description
- 最早32位定长
- 现代自动适配平台位数
- 支持二进制、八进制、十六进制表示
- Name
浮点数发展
- Type
- float-history
- Description
- Float: 早期标准浮点类型
- Double: 现代推荐使用的高精度类型
- CGFloat: 针对图形计算优化
类型转换示例
// Int和Double转换
let intValue = 42
let doubleValue = Double(intValue)
// CGFloat和Float转换
let cgFloat: CGFloat = 10.5
let floatValue = Float(cgFloat)
// 字符串转数字
let numberString = "123"
if let number = Int(numberString) {
print(number)
}
最佳实践
数据类型使用的推荐做法。
- Name
类型选择
- Type
- type-selection
- Description
- 整数计算优先使用Int
- 浮点计算优先使用Double
- 图形计算使用CGFloat
- 内存受限场景考虑Float
- Name
性能优化
- Type
- optimization
- Description
- 避免频繁类型转换
- 合理使用类型推断
- 注意数值溢出
- 字符串优化
最佳实践示例
// 推荐做法
let age: Int = 25
let price: Double = 99.99
let viewWidth: CGFloat = 320.0
// 避免
let height: Float = 175.5 // 用Double更好
let count = Int(doubleValue) // 避免频繁转换
// 字符串优化
let message = "Hello" + String(count) // 不推荐
let betterMessage = "Hello \(count)" // 推荐