我将程序中的许多整数存储为Int
,其值为0 - 255。现在稍后,我将总结其中的许多内容,以获得能够存储到UInt8
的结果。在将Int
中的值添加到Int
之前,我必须进行此转换,这会使我使用较小的数据类型来破坏我的目的吗?我觉得仅仅使用UInt8
会更快,但遭受更大的内存占用。但是,当我不得不面对许多降低速度和增加记忆的转换时,为什么选择//after searching through the stackoverflow tried lsof -wni tcp:3000 and kill //-9 2376, didnt help
。是否有我缺少的东西,或者较小的数据类型是否真的只与其他小数据类型一起使用?
答案 0 :(得分:1)
在存储为UInt8
而不是Int
时,每个变量都会讨论几个字节。这些数据类型是在计算历史的早期构想出来的,当时内存是以低KB来衡量的。即使Apple Watch也有512MB。
这是Apple在Swift Book中所说的内容:
除非您需要使用特定大小的整数,否则请始终在代码中使用
Int
作为整数值。这有助于代码一致性和互操作性。即使在32位平台上,Int
也可以存储-2,147,483,648和2,147,483,647之间的任何值,并且对于许多整数范围来说足够大。
我主要在处理C的代码中使用UInt8
,UInt16
和UInt32
。是的,来回转换是一个痛苦的问题。