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 - 这表示一个布尔值,它要么是真要么是假。
-
String- 这是一个有序的字符集合。例如,“你好,世界!”
-
Character- 这是一个单字符串文字。例如,“C”
-
Optional - 这代表一个变量,可以保存一个值或没有值。
-
Tuples - 这用于将多个值分组为单个复合值。
我们在这里列出了一些与整数类型相关的要点 --
在 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 1个字节 -127 到 127 UInt8 1个字节 0 到 255 Int32 4字节 -2147483648 转 2147483647 UInt32 4字节 0 到 4294967295 Int64 8bytes -9223372036854775808 至 9223372036854775807 UInt64 8 字节 0 到 18446744073709551615 Float 4字节 1.2E-38 到 3.4E+38(~6 位) Double 8 字节 2.3E-308 到 1.7E+308(~15 位) -
Mooases 型
您可以使用以下方法为现有类型创建新名称 typealias. 这是使用 typealias 定义新类型的简单语法 -typealias newname = type
例如,以下行指示编译器 Feet 是另一个名字 Int −typealias Feet = Int
现在,以下声明是完全合法的,并创建了一个名为 distance 的整数变量 -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)
当我们使用操场运行上述程序时,我们得到以下结果 -42 3.14159 3.14159