Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.5k views
in Technique[技术] by (71.8m points)

go中int类型变量在不同位数的操作系统长度不一样,为什么要这么设计?

Go语言中int类型的变量在32位操作系统长度是32,64位长度是64,这样肯定会导致风险,那为什么还要这么设计?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

不要把别的语言的类型带过来。

以 C# 为例,int 实际是 Int32 这个类型的别名。

而 Go 里,int 就是 int,是一个单独的类型。大部分场景下,作为通用的 int 就能满足需求了(比如表示数组的长度、下标,在 32 位系统和 64 位系统上数组的最大长度本来就是不一样的);如果你确实需要定长的整数类型,那就直接用 int32int64 啊,为啥非得用 int


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...