go 语言数据类型以及整型
数据类型介绍
在 Go 语言中,数据类型定义了变量可以存储的数据种类。每个变量都有明确的数据类型,这决定了变量所占用的内存大小、能存储的数据范围以及可以对其进行哪些操作。Go 的数据类型主要分为内置(基本)数据类型和复合(派生)数据类型两大类。
基本数据类型:
数值型:
整数型基本数据类型复杂数据类型
: (int,int8,int16,int32,int64,uint,uint8,uint16uint32,uint64,byte))
浮点型:(float32,float64)
字符型:(没有单独的字符型,使用byte来保存单个字母字符)
布尔型:(bool)
字符串:(string)
整数类型(int,int8,int16,int32,int64,uint,uint8,uint16uint32,uint64,byte)
浮点类型float32(,float64): 底层存储空间与操作系统无关,会丢失精度,底层存储分别有符号位和指数位,尾数位尾数位只存一个大概。可能出现精度损失
派生数据类型:
指针
数组
结构体
管道
函数
切片
接口
map
一、内置数据类型
1. 布尔类型
- bool
- 只有两个值:
true
和false
- 示例:
- 只有两个值:
2. 数值类型
数值类型又分为整数、浮点数和复数。
2.1 整数类型
-
有符号整数:
int
,int8
,int16
,int32
,int64
int
的大小取决于平台(32 位系统通常为 32 位,64 位系统通常为 64 位)。- 示例:
-
var a int = -10 var b int8 = 100
无符号整数:uint
, uint8
, uint16
, uint32
, uint64
, uintptr
- 无符号整数只能表示非负数。
var u uint = 10 var u8 uint8 = 255
2.2 浮点数类型
- 浮点数:
float32
和float64
float64
是默认的浮点数类型,精度更高。
var pi float64 = 3.1415926535
2.3 复数类型
- 复数:
complex64
和complex128
- 复数由实部和虚部组成,例如:
var c complex128 = complex(1.2, 3.4) fmt.Println(c) // 输出 (1.2+3.4i)
3. 字符串类型
- string
- 字符串是不可变的 Unicode 字符序列
1 | var s string = "Hello, Go!" |
整数介绍
在 Go 语言中,整数类型用于表示没有小数部分的数值。Go 提供了多种整数类型,主要分为有符号整数和无符号整数两大类。下面详细介绍这些类型:
有符号整数
这些类型可以表示正数、负数和零。
-
int8
- 占用 1 个字节
- 范围:-128 ~ 127
-
int16
- 占用 2 个字节
- 范围:-32,768 ~ 32,767
-
int32
- 占用 4 个字节
- 范围:-2,147,483,648 ~ 2,147,483,647
- 在 Go 中,
int32
也常用来表示 Unicode 字符(即 rune 类型)。
-
int64
- 占用 8 个字节
- 范围:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
-
int
- 根据不同平台,其大小可能是 32 位或 64 位
- 通常在 64 位系统上与
int64
相同,在 32 位系统上与int32
相同 - 常用作默认整数类型
无符号整数
这些类型只表示非负数。
-
uint8
- 占用 1 个字节
- 范围:0 ~ 255
- 也称为 byte 类型
-
uint16
- 占用 2 个字节
- 范围:0 ~ 65,535
-
uint32
- 占用 4 个字节
- 范围:0 ~ 4,294,967,295
-
uint64
- 占用 8 个字节
- 范围:0 ~ 18,446,744,073,709,551,615
-
uint
- 根据平台不同,其大小可能为 32 位或 64 位
- 用法与
int
类似,但只用于非负数
-
uintptr
- 用于存储指针地址的无符号整数类型
示例代码
以下示例展示了不同整数类型的声明和使用:

package main import ( "fmt" ) func main() { // 有符号整数示例 var a int = -100 // 默认 int 类型 var b int8 = 127 // int8 最大值 var c int16 = -30000 // int16 示例 var d int32 = 2147483647 // int32 最大值 var e int64 = -9223372036854775808 // int64 最小值 // 无符号整数示例 var f uint = 100 // 默认 uint 类型 var g uint8 = 255 // uint8 最大值 var h uint16 = 65000 // uint16 示例 var i uint32 = 4294967295 // uint32 最大值 var j uint64 = 18446744073709551615 // uint64 最大值 fmt.Println("有符号整数:") fmt.Println("a (int):", a) fmt.Println("b (int8):", b) fmt.Println("c (int16):", c) fmt.Println("d (int32):", d) fmt.Println("e (int64):", e) fmt.Println("\n无符号整数:") fmt.Println("f (uint):", f) fmt.Println("g (uint8):", g) fmt.Println("h (uint16):", h) fmt.Println("i (uint32):", i) fmt.Println("j (uint64):", j) } 执行结果 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main4.go 有符号整数: a (int): -100 b (int8): 127 c (int16): -30000 d (int32): 2147483647 e (int64): -9223372036854775808 无符号整数: f (uint): 100 g (uint8): 255 h (uint16): 65000 i (uint32): 4294967295 j (uint64): 18446744073709551615
小结
- 整数类型在 Go 语言中是基本数据类型,用于存储整数值。
- 有符号整数(如 int、int8、int16、int32、int64)可以表示正数、负数和零。
- 无符号整数(如 uint、uint8、uint16、uint32、uint64)只表示非负数。
- 选择合适的整数类型可以帮助你节省内存和确保数值范围正确,通常在不需要特别小数值范围时,直接使用默认的
int
或uint
类型即可。
查看一个变量的类型
package main import "fmt" func main(){ w := 8 fmt.Printf("w的类型%T",w) } 执行结果 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main5.go w的类型int
如何查看变量占用字节大小,以及数据类型
package main import ( "fmt" "unsafe" ) func main(){ w := 8 fmt.Printf("w的类型%T\n",w) //unsafe.Sizeof(w)是unsafe包的一个函数可以返回w变量占用的字节数 fmt.Printf("w的类型%T w占用字节数%d", w, unsafe.Sizeof(w)) } 执行结果 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main5.go w的类型int w的类型int w占用字节数8
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏