Golang语言基础数据类型之整型

                                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

1.整型概述

类型 描述
uint8 无符号 8位整型 (0 到 255)
uint16 无符号 16位整型 (0 到 65535)
uint32 无符号 32位整型 (0 到 4294967295)
uint64 无符号 64位整型 (0 到 18446744073709551615)
int8 有符号 8位整型 (-128 到 127)
int16 有符号 16位整型 (-32768 到 32767)
int32 有符号 32位整型 (-2147483648 到 2147483647)
int64 有符号 64位整型 (-9223372036854775808 到 9223372036854775807)
整数就是用于存放整数值的,比如: 10,-8,9527等等。

整型分为以下三个大类:(对应的取直范围如上表所示)
	有符号整数类型:int8、int16、int32、int64 
	无符号整型六类型:uint8、uint16、uint32、uint64
	其他整数类型: int,uint,rune,byte,uintptr

其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型。


温馨提示:
	1.Golang的整数类型,默认声明为int类型;
	2.Golang程序中整型变量在使用时,遵守"保小不保大"的原则,即在保证程序正确运行下,尽量使用占用空间小的数据类型;

2. 特殊整型

类型 描述
uint 32位操作系统上就是uint32,64位操作系统上就是uint64
int 32位操作系统上就是int32,64位操作系统上就是int64
uintptr 无符号整型,用于存放一个指针
rune 等价int32
byte 等价uint8
在使用int和 uint类型时,不能假定它是32位或64位的整型,而是考虑int和uint可能在不同平台上的差异。


温馨提示:
	(1)获取对象的长度的内建len()函数返回的长度可以根据不同平台的字节长度进行变化;
	(2)实际使用中,切片或map的元素数量等都可以用int来表示;
	(3)在涉及到二进制传输、读写文件的结构描述时,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用int和 uint。

3.参考案例

package main

import (
	"fmt"
	"unsafe"
)


func main(){
	// 超出了int8存储范围,编译报错: cannot use 222 (untyped int constant) as int8 value in variable declaration (overflows)
	// var n1 int8 = 222
	// fmt.Println(n1)

	// 超出了uint8的存储范围,编译报错: cannot use -22 (untyped int constant) as uint8 value in variable declaration (overflows)
	// var n2 uint8 = -22
	// fmt.Println(n2)

	// Golang的整数类型,默认声明为int类型。
	var n3 = 100
	fmt.Printf("n3的类型是: %T\n",n3)

	// 查看变量占用空间的字节大小。
	fmt.Println("n3占用空间大小(字节)为:",unsafe.Sizeof(n3))

}
posted @ 2024-06-23 23:05  尹正杰  阅读(31)  评论(0编辑  收藏  举报