gpt4 book ai didi

go - 在 Golang 中,uint16 VS int,哪个成本更低?

转载 作者:IT王子 更新时间:2023-10-29 01:16:42 26 4
gpt4 key购买 nike

我使用的是 64 位服务器。我的 golang 程序需要整数类型。

那么,如果我在源代码中使用 uint16 和 uint32 类型,是否比使用大多数常规 int 类型成本更高?

我正在考虑计算成本和开发成本。

最佳答案

对于绝大多数情况,使用 int 更有意义。以下是一些原因:

  1. Go 不会在数字类型之间进行隐式转换,即使您认为应该进行转换。如果你开始使用一些无符号类型而不是 int,你应该期望在你的代码中加入多种类型转换,因为其他库或 API 不喜欢无符号类型,因为无类型常量数字表达式返回 int 值等。
  2. 无符号类型比有符号类型更容易发生下溢,因为 0(无符号类型的边界值)比 -9223372036854775808 更像是计算机程序中自然出现的值。
  3. 如果您想使用无符号类型,因为它限制了您可以放入其中的值,请记住,当您将静默下溢和仅编译时常量传播结合使用时,您可能无法得到您想要的便宜货寻找。例如,虽然您无法将常量 math.MinInt64 转换为 uint,但您可以轻松地将值 math 的 int 变量转换为.MinInt64uint。可以说,使用 if 检查您尝试分配的值是否对您的程序有效,这并不是一种糟糕的 Go 风格。

除非您遇到显着的内存压力,并且您的值(value)空间略高于较小的带符号类型所能提供的空间,否则我认为使用 int 会更有效,即使只是因为的开发成本。即便如此,也有可能是您的程序内存占用中的其他地方存在问题,或者像 Go 这样的托管语言不是最适合您的需求。

关于go - 在 Golang 中,uint16 VS int,哪个成本更低?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36144644/

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