Int和Int32在Swift上有什么区别?

Core Data你可以存储Int16Int32Int64但它不同于Int 。 他们存在的原因是什么,你如何使用它们?

根据Swift文档

诠释

在大多数情况下,您不需要select要在代码中使用的特定大小的整数。 Swift提供了一个额外的整数typesInt,其大小与当前平台的本地字大小相同:

在32位平台上,Int的大小与Int32的大小相同。

在64位平台上,Int与Int64的大小相同。

除非需要使用特定大小的整数,否则在代码中始终使用Int作为整数值。 这有助于代码的一致性和互操作性。 即使在32位平台上,Int也可以存储-2,147,483,648和2,147,483,647之间的任何值,并且对于很多整数范围来说足够大。

放在“Int”之后的数字是它使用多less位的参考。 当你使用int来表示一些非常短或者几乎不需要的东西时,比如一个列表中有多less个对象遵循一个特定的参数,我通常使用一个UInt8,它是一个最大值为256的整数(2 ^ 8),最小值为0,因为它是无符号的(这是UInt8和Int8之间的区别)。 如果它是签名的,(或者没有“U”作为variables的前缀),那么它可以是负数。 Int16,Int32和Int64也是如此。 使用较小尺寸的Inttypes的奖励并不是很大,所以如果你不想要的话,你并不需要使用它们。

如果您正在使用32位或64位处理器的笔记本电脑或iOS设备上运行,则不会节省性能。 只要使用Int。 当你使用Int8时,CPU不会只使用8位,不pipe你使用什么,CPU都会使用它的全部位宽,因为硬件已经在芯片中了。

现在,如果你有一个8位的CPU,那么使用Int32将需要编译器做一堆后空翻和魔术技巧,让32位Int工作