• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

types - 为什么 Go 有几种不同的整数类型?

[复制链接]
菜鸟教程小白 发表于 2022-8-16 06:38:47 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我发现 Go 中有不同的整数类型令人困惑。考虑到许多其他主要编程语言中不存在这些区别,定义这些不同类别的必要性是什么?

int  int8  int16  int32  int64
uint uint8 uint16 uint32 uint64 uintptr



Best Answer-推荐答案


Go有两种类型:

  • 架构依赖类型 int , uint , uintptr .和
  • 架构独立类型 int32 , int64

  • 依赖于体系结构的类型对于运行程序的机器具有适当的长度:
  • int是默认的有符号类型:它需要 32 位(4 字节)在 32
    位机和 64 位机上的 64 位(8 个字节);未签名的 uint 也是如此.
  • uintptr是一个足以存储指针值的无符号整数。

  • 与体系结构无关的类型具有由其名称指示的固定大小(以位为单位):

    对于整数,范围是:
    int8 (-128 -> 127)
    int16 (-32768 -> 32767)
    int32 (− 2,147,483,648 -> 2,147,483,647)
    int64 (− 9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
    

    对于无符号整数 :
    uint8 (with alias byte, 0 -> 255)
    uint16 (0 -> 65,535)
    uint32 (0 -> 4,294,967,295)
    uint64 (0 -> 18,446,744,073,709,551,615)
    

    对于花车 :
    float32 (+- 1O-45 -> +- 3.4 * 1038 )
    (IEEE-754) float64 (+- 5 * 10-324 -> 1.7 * 10308 )
    
    int是提供最快处理速度的整数类型。
    整数的初始(默认)值为 0 ,对于浮点数,这是 0.0float32 可靠地精确到大约 7 个小数位,float64 精确到大约 15 个小数位。

    由于将浮点数与 == 进行比较,不可能达到完美的精度。或 !=必须非常小心!

    关于types - 为什么 Go 有几种不同的整数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266352/

    回复

    使用道具 举报

    懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关注0

    粉丝2

    帖子830918

    发布主题
    阅读排行 更多
    广告位

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap