gpt4 book ai didi

ios - 我应该在 64 位架构中使用 Int32 来代替 Int 或 Int64 吗?

转载 作者:行者123 更新时间:2023-12-01 19:36:32 48 4
gpt4 key购买 nike

我正在开发的 iOS 应用程序仅支持 64 位设备。
创建新 Int 时快速输入并考虑到我要存储的范围永远不会溢出 Int32 ,不知道使用Int32有什么好处吗?或 Int/Int64 .

最佳答案

不,使用 Int。 Swift Programming Language对此非常明确:

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.



通过“使用特定大小的整数”,该文档描述了根据特定位宽定义的文件格式和网络协议(protocol)等情况。即使您只数到 10,您仍应将其存储在 Int 中。

Int 类型不会自动转换,因此如果您有 Int32,并且函数需要 Int,则必须将其转换为 Int(x) .这很快就会变得非常麻烦。为了避免这种情况,Swift 强烈建议一切都是 Int ,除非你有特定的理由不这样做。

即使您的值是无符号的,您也应该避免使用 UInt。当你的意思是“这个机器字大小的位模式”时,你应该只使用 UInt,当你的意思是“这个位宽的位模式”时,你应该只使用大小的 UInt(UInt32 等)。如果你的意思是“一个数字”(甚至是一个无符号数字),你应该使用 Int.

Use UInt only when you specifically need an unsigned integer type with the same size as the platform’s native word size. If this isn’t the case, Int is preferred, even when the values to be stored are known to be nonnegative. A consistent use of Int for integer values aids code interoperability, avoids the need to convert between different number types, and matches integer type inference, as described in Type Safety and Type Inference.



有关性能的进一步讨论的一些链接,请参见下面的 Peter 评论。确实,在处理大型数据结构时,使用 32 位整数可以显着提高性能,特别是因为缓存和局部性问题。但通常,这应该隐藏在管理额外复杂性的数据类型中,将性能关键代码与主系统隔离开来。如果您不小心的话,在 32 位和 64 位整数之间来回移动很容易压倒较小数据的优势。

因此,作为一项规则,使用 Int。在某些情况下使用 Int32 有一些优势,但尝试将其用作默认值可能会损害性能,因为它会帮助它,并且肯定会显着增加代码复杂性。

关于ios - 我应该在 64 位架构中使用 Int32 来代替 Int 或 Int64 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59949999/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com