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常用的基础数据类型及其特性。

类型位数范围精度用途
Int32/64位-2^31 ~ 2^31-1 (32位)
-2^63 ~ 2^63-1 (64位)
整数计数、索引
Double64位±2.23x10^-308 ~ ±1.80x10^30815-17位小数高精度浮点计算
Float32位±1.18x10^-38 ~ ±3.4x10^386-7位小数普通浮点计算
String动态取决于内存UTF-8编码文本处理
Bool1位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)"   // 推荐

这篇文章对你有用吗?