当前位置: 首页 > 文档资料 > Swift 中文教程 >

数据类型

优质
小牛编辑
145浏览
2023-12-01

在使用任何编程语言进行编程时,您需要使用不同类型的变量来存储信息。 变量只是用于存储值的保留内存位置。 这意味着在创建变量时,会在内存中保留一些空间。

您可能希望存储各种数据类型的信息,如字符串,字符,宽字符,整数,浮点,布尔值等。根据变量的数据类型,操作系统分配内存并决定可以在保留中存储的内容记忆。

(类型)

Swift 4为程序员提供了丰富的内置和用户定义的数据类型。 在声明变量时,最常见的是以下类型的基本数据类型 -

  • Int or 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。

  • String - 这是一个有序的字符集合。 例如,“Hello,World!”

  • Character - 这是一个单字符字符串文字。 例如,“C”

  • Optional - 这表示可以包含值或不包含值的变量。

  • Tuples - 用于在单个复合值中对多个值进行分组。

我们在此列出了与Integer类型相关的几个要点 -

  • 在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位形式。

约束值

下表显示了变量类型,将值存储在内存中所需的内存量,以及可以存储在此类变量中的最大值和最小值。

类型典型的位宽典型范围
Int81byte-127 to 127
UInt81byte0到255
Int324bytes-2147483648 to 2147483647
UInt324bytes0 to 4294967295
Int648bytes-9223372036854775808 to 9223372036854775807
UInt648bytes0 to 18446744073709551615
Float4bytes1.2E-38至3.4E + 38(~6位)
Double8bytes2.3E-308至1.7E + 308(~15位)

键入别名

您可以使用typealias为现有类型创建新名称。 以下是使用typealias定义新类型的简单语法 -

typealias newname = type

例如,以下行指示编译器FeetInt另一个名称 -

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