- 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 - 浮点数
- Swift - Double
- Swift - 布尔值
- Swift - 字符串
- Swift - 字符
- Swift - 类型别名
- Swift - 可选类型
- Swift - 元组
- Swift - 断言和前提条件
- Swift 控制流
- Swift - 决策
- Swift - if 语句
- Swift - if...else if...else 语句
- Swift - if-else 语句
- Swift - 嵌套 if 语句
- Swift - switch 语句
- Swift - 循环
- Swift - for in 循环
- Swift - while 循环
- Swift - repeat...while 循环
- Swift - continue 语句
- Swift - break 语句
- 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 - 析构
- Swift 高级特性
- Swift - ARC 概述
- Swift - 可选链
- Swift - 错误处理
- Swift - 并发
- Swift - 类型转换
- Swift - 嵌套类型
- Swift - 扩展
- Swift - 协议
- Swift - 泛型
- Swift - 访问控制
- Swift - 函数与方法
- Swift - SwiftyJSON
- Swift - 单例类
- Swift 随机数
- Swift 不透明类型和装箱类型
- Swift 有用资源
- Swift - 在线编译
- Swift - 快速指南
- Swift - 有用资源
- Swift - 讨论
Swift - 数据类型
在任何编程语言中开发程序时,使用变量来存储数据是必要的。变量只不过是保留的内存位置来存储数据。这意味着当我们创建一个变量时,我们在内存中保留了一定数量的空间。
随后,当希望在变量中存储数据时,我们可以输入任何类型的数据,例如字符串、字符、宽字符、整数、浮点数、布尔值等。根据变量的数据类型,操作系统分配内存并决定可以在保留的内存中存储什么。
Swift 中的内置数据类型
Swift 为程序员提供了丰富的内置数据类型,也称为原始数据类型。它们表示基本值,并由 Swift 语言直接支持。Swift 提供七种内置数据类型,它们是:
数据类型名称 | 描述 |
---|---|
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 | 表示布尔值,其值为真或假。 |
String | 有序的字符集合。例如,“Hello, World!” |
Character | 单个字符字符串文字。例如,“C” |
Optional | 表示可以保存值或不保存值的变量。 |
边界值
下表显示了数据类型、在内存中存储值所需的内存量以及可以在此类变量中存储的最大值和最小值。
类型 | 典型位宽 | 典型范围 |
---|---|---|
Int8 | 1 字节 | -127 到 127 |
UInt8 | 1 字节 | 0 到 255 |
Int32 | 4 字节 | -2147483648 到 2147483647 |
UInt32 | 4 字节 | 0 到 4294967295 |
Int64 | 8 字节 | -9223372036854775808 到 9223372036854775807 |
UInt64 | 8 字节 | 0 到 18446744073709551615 |
Float | 4 字节 | 1.2E-38 到 3.4E+38 (~6 位) |
Double | 8 字节 | 2.3E-308 到 1.7E+308 (~15 位) |
Swift 中的用户定义数据类型
用户定义的数据类型允许我们根据需求创建自定义的数据类型。它们提供了更大的灵活性和抽象性。以下是 Swift 支持的一些用户定义的数据类型:
类型名称 | 描述 |
---|---|
结构体 (struct) | 它们是值类型;这意味着在程序中传递时可以复制它们。它们适合表示简单的数据结构。 |
类 | 它们是引用类型;这意味着它们作为引用传递。它们适合复杂的数据模型和对象。 |
枚举 (Enum) | 用于定义一组相关的值。它们适合表示有限集。 |
协议 | 它们定义了方法和属性的蓝图,这对于特定任务或功能块很有用。 |
定义数据类型
定义数据类型是一个过程,在这个过程中,我们指定将在变量中存储什么类型的数据。众所周知,Swift 支持两种类型的数据——内置数据类型和用户定义的数据类型。因此,我们将看到如何定义内置数据类型:
语法
以下是内置数据类型的语法:
var name : dataType = Value
示例
定义内置数据类型:
var index : Int = 10 var str : String = "Learn Swift!" var char : Character = "S" var num : Float = 23.45 var nums : Double = 32.233434 var value : Bool = true
现在我们将看到如何定义用户定义的数据类型:
语法
以下是用户定义数据类型的语法:
struct Student { var name: String var age: Int } var myData = Student(name: "Mona", age: 23)
示例
定义内置用户定义数据类型:
// Structure struct Employee { var name: String var age: Int } // Structure data type var myData = Employee(name: "Seema", age: 23) // Class class Student { var name: String var age: Int init(name: String, age: Int) { self.name = name self.age = age } } // Class data type var myInfo = Student(name: "Alice", age: 25) // Enumeration enum Rectangle { case length, width, breadth } // Enum data type var side: Rectangle = .length
Swift 中的类型安全
Swift 是一种类型安全的语言。这意味着如果程序中的变量期望一个字符串,则不能错误地传入整数,因为 Swift 在编译代码时执行类型检查,如果发现任何类型不匹配,则会显示错误消息。
但是,这并不意味着必须指定每个变量或常量的类型。Swift 应用类型推断,如果未显式指定变量或常量的类型,则会自动确定其类型。
示例
Swift 程序演示类型安全。
var varA = 42 // Here compiler will show an error message because varA // variable can only store integer type value varA = "This is hello" print(varA)
输出
main.swift:5:8: error: cannot assign value of type 'String' to type 'Int' varA = "This is hello"
Swift 中的类型推断
类型推断是 Swift 语言的一项特殊功能;它允许编译器在编译时自动推断给定表达式的类型。这意味着不需要在声明时显式定义变量的类型,Swift 仍然会提供字符串类型安全。
当声明具有初始值的常量或变量时,它非常有用。
示例
Swift 程序演示类型推断。
import Foundation // varA is inferred to be of type Int var varA = 42 print("Type of varA variable is:", type(of:varA)) // varB is inferred to be of type Double var varB = 3.14159 print("Type of varB variable is:", type(of:varB)) // varC is also inferred to be of type String var varC = "TutorialsPoint" print("Type of varC variable is:", type(of:varC))
输出
Type of varA variable is: Int Type of varB variable is: Double Type of varC variable is: String