在Go语言中变量分为有符号和无符号两种类型
- 有符号:int int8 int16 int32 int64
- 无符号:unit unit8 uint16 uint32 uint64
- 在保证程序正确运行的情况下,应该尽量选择占用空间小的数据类型,可以使用fmt.Printf("%T", var_name)输出变量类型,unsafe.Sizeof(var_name)查看变量占用字节
| 类型 | 描述 | 范围 | 实际范围 |
|---|---|---|---|
| uint | 32位或64位 | ||
| uint8 | 无符号8位整型 | 0~2^8-1 | 0~255 |
| uint16 | 无符号16位整型 | 0~2^16-1 | 0~65535 |
| uint32 | 无符号32位整型 | 0~2^32-1 | 0~4294967295 |
| uint64 | 无符号64位整型 | 0~2^64-1 | 0~18446744073709551615 |
| int | 32位或64位 | ||
| int8 | 有符号8位整型 | -128~127 | |
| int16 | 有符号16位整型 | -32768~32767 | |
| int32 | 有符号32位整型 | -2147483648~2147483647 | |
| int64 | 有符号64位整型 | -9223372036854775808~9223372036854775807 | |
| byte | uint8的别名 | type byte = uint8 | |
| rune | uint32的别名,表示一个unicode码 | type rune = uint32 |
- 问题:若定义的整型变量超过范围会出现什么情况?
var i int8
i = 127
i = i + 1
fmt.Println(i) //结果会输出-127

被折叠的 条评论
为什么被折叠?



