- 快速教程
- 斯威夫特 - 主页
- 斯威夫特 - 概述
- Swift - 环境
- Swift - 基本语法
- Swift - 数据类型
- Swift - 变量
- Swift - 可选
- Swift - 元组
- Swift - 常量
- Swift - 文字
- Swift - 运算符
- Swift - 决策
- Swift - 循环
- Swift - 字符串
- 斯威夫特 - 角色
- Swift - 数组
- Swift - 套装
- 斯威夫特 - 字典
- Swift - 函数
- Swift - 闭包
- Swift - 枚举
- Swift - 结构
- Swift - 类
- Swift - 属性
- Swift - 方法
- Swift - 下标
- Swift - 继承
- Swift - 初始化
- Swift - 去初始化
- Swift - ARC 概述
- Swift - 可选链接
- Swift - 类型转换
- Swift - 扩展
- Swift - 协议
- Swift - 泛型
- Swift - 访问控制
- 斯威夫特有用的资源
- Swift - 在线编译
- Swift - 快速指南
- Swift - 有用的资源
- 斯威夫特 - 讨论
Swift - 数据类型
使用任何编程语言进行编程时,都需要使用不同类型的变量来存储信息。变量只不过是用于存储值的保留内存位置。这意味着当您创建变量时,您会在内存中保留一些空间。
您可能喜欢存储各种数据类型的信息,如字符串、字符、宽字符、整数、浮点、布尔值等。操作系统根据变量的数据类型分配内存并决定保留的内容可以存储记忆。
内置数据类型
Swift 4 为程序员提供了丰富的内置数据类型以及用户定义的数据类型。声明变量时最常见的是以下类型的基本数据类型 -
Int 或 UInt - 用于整数。更具体地说,您可以使用 Int32、Int64 定义 32 或 64 位有符号整数,而使用 UInt32 或 UInt64 定义 32 或 64 位无符号整数变量。例如,42 和-23。
Float - 用于表示 32 位浮点数和小数点较小的数字。例如,3.14159、0.1 和 -273.158。
Double - 用于表示 64 位浮点数,并在浮点值必须非常大时使用。例如,3.14159、0.1 和 -273.158。
Bool - 这表示一个布尔值,可以是 true 也可以是 false。
字符串- 这是字符的有序集合。例如,“你好,世界!”
字符- 这是一个单字符字符串文字。例如,“C”
可选- 这表示可以保存值或不保存值的变量。
元组- 用于将多个值分组到单个复合值中。
我们在这里列出了与整数类型相关的一些要点 -
在 32 位平台上,Int 的大小与 Int32 相同。
在 64 位平台上,Int 的大小与 Int64 相同。
在 32 位平台上,UInt 的大小与 UInt32 相同。
在 64 位平台上,UInt 的大小与 UInt64 相同。
Int8、Int16、Int32、Int64 可用于表示 8 位、16 位、32 位和 64 位形式的有符号整数。
UInt8、UInt16、UInt32 和 UInt64 可用于表示 8 位、16 位、32 位和 64 位形式的无符号整数。
约束值
下表显示了变量类型、在内存中存储该值需要多少内存以及该类型变量可以存储的最大值和最小值是多少。
类型 | 典型位宽 | 典型范围 |
---|---|---|
整型8 | 1字节 | -127 至 127 |
UInt8 | 1字节 | 0 至 255 |
整数32 | 4字节 | -2147483648 至 2147483647 |
UInt32 | 4字节 | 0 至 4294967295 |
整型64 | 8字节 | -9223372036854775808 至 9223372036854775807 |
UInt64 | 8字节 | 0 至 18446744073709551615 |
漂浮 | 4字节 | 1.2E-38 至 3.4E+38(~6 位数字) |
双倍的 | 8字节 | 2.3E-308 至 1.7E+308(约 15 位数字) |
类型别名
您可以使用typealias为现有类型创建新名称。以下是使用 typealias 定义新类型的简单语法 -
typealias newname = type
例如,以下行指示编译器Feet是Int的另一个名称-
typealias Feet = Int
现在,以下声明是完全合法的,并创建一个名为距离的整数变量 -
typealias Feet = Int var distance: Feet = 100 print(distance)
当我们使用 Playground 运行上述程序时,我们得到以下结果。
100
类型安全
Swift 4 是一种类型安全语言,这意味着如果代码的一部分需要 String,则不能错误地向其传递 Int。
由于 Swift 4 是类型安全的,因此它会在编译代码时执行类型检查,并将任何不匹配的类型标记为错误。
var varA = 42 varA = "This is hello" print(varA)
当我们编译上面的程序时,它会产生以下编译时错误。
main.swift:2:8: error: cannot assign value of type 'String' to type 'Int' varA = "This is hello"
类型推断
类型推断使编译器能够在编译代码时自动推断出特定表达式的类型,只需检查您提供的值即可。Swift 4 使用类型推断来计算出适当的类型,如下所示。
// varA is inferred to be of type Int var varA = 42 print(varA) // varB is inferred to be of type Double var varB = 3.14159 print(varB) // varC is also inferred to be of type Double var varC = 3 + 0.14159 print(varC)
当我们使用 Playground 运行上述程序时,我们得到以下结果 -
42 3.14159 3.14159