在Golang,uint16与int,哪个成本更低?
我使用的是64位服务器。我的golang程序需要整数类型 所以,如果我在源代码中使用uint16和uint32类型,它的成本会比使用大多数常规的int类型高吗在Golang,uint16与int,哪个成本更低?,go,Go,我使用的是64位服务器。我的golang程序需要整数类型 所以,如果我在源代码中使用uint16和uint32类型,它的成本会比使用大多数常规的int类型高吗 我正在考虑计算成本和开发成本。对于绝大多数情况,使用int更有意义。 以下是一些原因: Go不会在数字类型之间进行隐式转换,即使您认为它应该进行转换。如果您开始使用一些无符号类型而不是int,那么您应该期望在代码中添加多个类型转换,因为其他库或API不喜欢使用无符号类型,因为未类型化的常量数值表达式返回int值,等等 无符号类型比有符号类
我正在考虑计算成本和开发成本。对于绝大多数情况,使用
int
更有意义。
以下是一些原因:
int
,那么您应该期望在代码中添加多个类型转换,因为其他库或API不喜欢使用无符号类型,因为未类型化的常量数值表达式返回int
值,等等math.MinInt64
转换为uint
,但可以轻松地将值为math.MinInt64
的int
变量转换为uint
。可以说,使用if
检查您试图分配的值是否对您的程序有效并不是一种糟糕的Go风格int
将更有效率,即使只是因为开发成本。
即使如此,也有可能是程序内存占用的其他地方出现了问题,或者像Go这样的托管语言不是最适合您的需要。什么是“成本”?除非你储存了数十亿个这样的东西,并对它们进行了数十亿次的操作,否则我怀疑你是否会注意到它们之间的区别。使用任何表示法都可以覆盖您可能遇到的值。成本还包括开发人员编写代码行来转换源代码中的变量类型。如果您一直在转换,那么您选择了错误的类型。您可以查看这类计算。“我们应该忘记小效率,比如说97%的时间:过早优化是万恶之源。”