我将程序中的许多整数存储为 UInt8
,其值范围为 0 - 255。现在稍后我将对其中的许多进行求和以获得能够存储到 Int
中的结果。在将值从 UInt8
添加到 Int
之前,我是否必须进行此转换,这是否违背了我一开始就使用较小数据类型的目的?我觉得只使用 Int
会更快,但内存占用更大。但是,当我必须面对许多降低速度和增加内存的转换时,为什么还要选择 UInt8?我是否遗漏了一些东西,或者较小的数据类型实际上应该仅与其他小数据类型一起使用?
最佳答案
当存储为 UInt8
而不是 Int
时,您所说的是每个变量的几个字节。这些数据类型是在计算历史的早期就构思出来的,当时内存是以低 KB 为单位进行测量的。甚至 Apple Watch 也有 512MB。
以下是 Apple 在 Swift Book 中所说的内容:
Unless you need to work with a specific size of integer, always use
Int
for integer values in your code. This aids code consistency and interoperability. Even on 32-bit platforms,Int
can store any value between -2,147,483,648 and 2,147,483,647, and is large enough for many integer ranges.
我主要在处理 C 的代码中使用 UInt8
、UInt16
和 UInt32
。是的,来回转换是一件痛苦的事情。脖子。
关于swift - 将 UInt8(或类似类型)转换为 Int 是否违背了 UInt8 的目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37580575/