上一章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——它表示一个变量,这个变量可以包含值,也可以不包含值。
- 元组tuple——用于将多个值分组为一个复合值。
- 在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位形式的无符号整数。
下表显示了变量类型、将值存储在内存中需要多少内存以及可以存储在这种类型变量中的最大值和最小值。
内向 | 典型位宽 | 典型范围 |
Int8 | 1byte | -127 to 127 |
UInt8 | 1byte | 0 to 255 |
Int32 | 4bytes | -2147483648 to 2147483647 |
UInt32 | 4bytes | 0 to 4294967295 |
Int64 | 8bytes | -9223372036854775808 to 9223372036854775807 |
UInt64 | 8bytes | 0 to 18446744073709551615 |
Float | 4bytes | 1.2E-38 to 3.4E+38 (~6 digits) |
Double | 8bytes | 2.3E-308 to 1.7E+308 (~15 digits) |
typealias newname = type
例如,下面的行指示编译器Feet是Int -的另一个名称
typealias Feet = Int
下面的声明是完全合法的,它创建了一个名为distance?的整数变量
typealias Feet = Int
var distance: Feet = 100
print(distance)
swift类型安全Swift是一种类型安全的语言,这意味着如果你的代码的一部分需要一个字符串,你不能错误地传递一个整型。
由于Swift是类型安全的,它在编译代码时执行类型检查,并将任何不匹配的类型标记为错误。
var varA = 42
varA = "This is hello"
print(varA)
【swift数据类型介绍 – Swift最新教程】当我们编译上述程序时,它会产生以下编译时错误。
main.swift:2:8: error: cannot assign value of type 'String' to type 'Int'
varA = "This is hello"
swift类型推断类型推断使编译器能够在编译代码时自动推断特定表达式的类型,只需检查你提供的值即可,Swift使用类型推断来计算出适当的类型,如下所示。
// varA推断为Int
var varA = 42
print(varA)// varB 推断为 Double
var varB = 3.14159
print(varB)// varC 推断为 Double
var varC = 3 + 0.14159
print(varC)
swift数据类型学习总结在本章中我们学习了swift的数据类型基本内容,包括内置数据类型、数据类型的值范围、类型别名、类型安全和类型推断:
- 内置数据类型帮助我们声明不同的变量,储存不同的内容。
- 数据类型的值范围限定了我们给对应数据类型赋值的范围。
- 类型别名类型C语言中的typedef,我们可以使用更直观的类型名称。
- Swift提供类型安全检查,防止我们使用了非法的类型。
- Swift可以使用类型推断自动判断数据的类型,类似于JS中的var,以及C++中的auto。
推荐阅读
- swift变量介绍和使用 – Swift最新教程
- swift入门基本语法 – Swift最新教程
- 六大算法设计技巧(贪婪法、分治法、动态规划、随机化算法、回溯法和分支限界法)
- 如何实现优先队列(Java使用数组实现最小堆和优先队列)
- 图论(graph theory)算法原理、实现和应用全解
- 不相交集(disjoint set)原理和实现图文详解
- 9大经典排序算法原理和实现代码详解
- 优先队列(priority queue)和堆(heap)详解(二叉堆、d-堆、左式堆、斜堆和二项堆)
- 快速访问数据(散列表(Hash Table)实现原理和代码实例详解)