为什么在Go中存在类型int

时间:2017-02-17 07:11:25

标签: go

int, int32, int64中有Golang

int32 has 32 bits,
int64 has 64 bits,
int has 32 or 64 or different number of bits according to the environment.

我认为int32int64对于该计划来说已经足够了。 我不知道为什么int类型应该存在,它不会使我们的代码操作更难以预测吗?

同样在C++中,输入int和输入long的长度不确定。我认为这将使我们的计划变得脆弱。我很困惑。

3 个答案:

答案 0 :(得分:4)

通常waitDialog.cancel(); 的大小等于目标的自然字大小。因此,如果您的程序不关心int(最小int范围就足够了)的大小,那么它可以在各种编译器上表现最佳。

当您需要特定尺寸时,您当然可以使用int等。

答案 1 :(得分:4)

通常每个平台最适合其原始大小的整数类型。

通过使用简单的int,你对你的编译器说你并不真正关心使用什么位宽,你让他选择一个最快的工作。请注意,您始终希望编写代码,以使其尽可能与平台无关......

另一方面,如果您需要具有特定大小的整数,则int32 / int64类型非常有用。这可能是有用的。如果你想保存二进制文件(不要忘记endiannes)。或者,如果你有大量的整数(最多只能达到32b的值),那么节省一半的内存就会很重要等等。

答案 2 :(得分:0)

在Go to 1.0的版本中,int只是int32的同义词 - 一个32位整数。由于int用于索引切片,因此这会阻止切片拥有超过20亿个元素。

在Go 1.1中,int was made 64 bits long on 64-bit platforms,因此足以索引适合主内存的任何切片。因此:

  • int32是32位整数的类型;
  • int64是64位整数的类型;
  • int是可以索​​引所有可能切片的最小整数类型。

在实践中,int足够大,可用于大多数实际用途。仅在操作大于最大可能切片索引的值时才需要使用int64,而在不需要更大范围时,int32对于节省内存和减少内存流量非常有用。