我正在使用64位服务器。我的golang程序需要整数类型。
所以,如果我在源代码中使用uint16和uint32类型,它是否比使用大多数常规int类型花费更多?
我正在考虑计算成本和开发成本。
答案 0 :(得分:12)
对于使用int
的绝大多数情况更有意义。
以下是一些原因:
int
,那么您应该期望通过多种类型转换来编写代码,因为其他库或API更喜欢不使用无符号类型,因为返回{{{} 1}}值等。int
转换为math.MinInt64
,但您可以轻松地将值uint
的{{1}}变量转换为int
。并且可以说,使用math.MinInt64
检查您尝试分配的值是否对您的程序有效并不是糟糕的Go风格。除非你遇到巨大的内存压力,并且你的价值空间略微超过了较小的签名类型所能给你的价值空间,否则我认为即使只是因为开发成本,使用uint
也会更有效率。
即便如此,很可能在程序的内存占用中存在其他问题,或者像Go这样的托管语言不是最符合您需求的。