问答

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

作者:admin 2021-05-07 我要评论

Go语言中int类型的变量在32位操作系统长度是32,64位长度是64,这样肯定会导致风险,那为什么还要这么设计? ### 不要把别的语言的类型带过来。 以 C# 为例, in...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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

###

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

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

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

###

go之父本来就是个c佬,你说呢

###

好像不止 Golang 会有这个问题, C语言在32位和64位中 long ,point,size_t等长度也是不一样的.

这些随着时间和硬件的升级,会发生变化, 16位机 int 还只有16位,后续32位硬件出来后,对应的编译器也都做了变化

像 go 这种,int 32位操作系统是长度32,64位长度是64,也不会有啥问题,毕竟向下兼容, 64位可以运行32位,32位可不能运行64位. 向 C 和 C++ 这种,32位的 int ,long ,long long 分别是 32,32,64.到64了分别是 32,64,64 这种才让人诧异.

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • go中int类型变量在不同位数的操作系统

    go中int类型变量在不同位数的操作系统

  • tp5提示控制器名不存在

    tp5提示控制器名不存在

  • jQuery事件委托的原理是什么?

    jQuery事件委托的原理是什么?

  • 为什么flutter运行个示例就这么多坑,

    为什么flutter运行个示例就这么多坑,

腾讯云代理商
海外云服务器