整数
整数就是没有小数部分的数字,比如42
和-23
。整数可以是有符号
(正、负、零)或者无符号
(正、零)。
Swift 提供了8,16,32和64位的有符号和无符号整数类型。这些整数类型和 C 语言的命名方式很像,比如8位无符号整数类型是UInt8
,32位有符号整数类型是Int32
。就像 Swift 的其他类型一样,整数类型采用大写命名法。
整数范围
你可以访问不同整数类型的min
和max
属性来获取对应类型的最小值和最大值:
let minValue = UInt8.min // minValue 为 0,是 UInt8 类型
let maxValue = UInt8.max // maxValue 为 255,是 UInt8 类型
min
和max
所传回值的类型,正是其所对的整数类型(如上例UInt8, 所传回的类型是UInt8),可用在表达式中相同类型值旁。
Int
一般来说,你不需要专门指定整数的长度。Swift 提供了一个特殊的整数类型Int
,长度与当前平台的原生字长相同:
- 在32位平台上,
Int
和Int32
长度相同。 - 在64位平台上,
Int
和Int64
长度相同。
除非你需要特定长度的整数,一般来说使用Int
就够了。这可以提高代码一致性和可复用性。即使是在32位平台上,Int
可以存储的整数范围也可以达到-2,147,483,648
~2,147,483,647
,大多数时候这已经足够大了。
UInt
Swift 也提供了一个特殊的无符号类型UInt
,长度与当前平台的原生字长相同:
- 在32位平台上,
UInt
和UInt32
长度相同。 - 在64位平台上,
UInt
和UInt64
长度相同。
注意:
尽量不要使用UInt
,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用Int
,即使你要存储的值已知是非负的。统一使用Int
可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断请参考类型安全和类型推断。
浮点数
浮点数是有小数部分的数字,比如3.14159
,0.1
和-273.15
。
浮点类型比整数类型表示的范围更大,可以存储比Int
类型更大或者更小的数字。Swift 提供了两种有符号浮点数类型:
Double
表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。Float
表示32位浮点数。精度要求不高的话可以使用此类型。
注意:
Double
精确度很高,至少有15位数字,而Float
最少只有6位数字。选择哪个类型取决于你的代码需要处理的值的范围。