golang,uint、uint32、uint64这三种类型的区别是什么?

rt,看别人的项目好像经常可以混着用。。。

阅读 39k
2 个回答

首先他们都是无符号的,区别在于他们在内存中的长度是不一样的:

package main

import (
    "fmt"
    "unsafe"
)

func main() {
    var a uint
    var b uint32
    var c uint64

    fmt.Println("size of a: ", unsafe.Sizeof(a))
    fmt.Println("size of b: ", unsafe.Sizeof(b))
    fmt.Println("size of c: ", unsafe.Sizeof(c))
}

打印结果是这样的:

size of a: 8
size of b: 4
size of c: 8

我的机器是64位的,所以uint和 uint64所占用的长度是一样的,都是8bit,64位的长度。至于选哪个,那要看你到你要存多大的数了。

都是无符号整形,在32位系统中uint和uint32相同,在64位系统中uint和uint64位相同

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题