# Go 语言数据类型
在 Go 编程语言中,数据类型用于声明函数和变量。
数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。
Go 语言按类别有以下几种数据类型:
| 序号 | 类型和描述 |
| --- | --- |
| **布尔型** | 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 |
| **数字类型** | 整型 int 和浮点型 float,Go 语言支持整型和浮点型数字,并且原生支持复数,其中位的运算采用补码。 |
| **字符串类型:** | 字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本。 |
| **派生类型:** | 包括: (a) 指针类型(Pointer) (b) 数组类型 (c) 结构化类型(struct) (d) 联合体类型 (union) (e) 函数类型 (f) 切片类型 (g) 接口类型(interface) (h) Map 类型 (i) Channel 类型 |
## 数字类型
Go 也有基于架构的类型,例如:int、uint 和 uintptr。
| 序号 | 类型和描述 |
| --- | --- |
| **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) |
浮点型:
| 序号 | 类型和描述 |
| --- | --- |
| **float32** | IEEE-754 32位浮点型数 |
| **float64** | IEEE-754 64位浮点型数 |
| **complex64** | 32 位实数和虚数 |
| **complex128** | 64 位实数和虚数 |
## 其他数字类型
以下列出了其他更多的数字类型:
| 序号 | 类型和描述 |
| --- | --- |
| **byte** | 类似 uint8 |
| **rune** | 类似 int32 |
| **uint** | 32 或 64 位 |
| **int** | 与 uint 一样大小 |
| **uintptr** | 无符号整型,用于存放一个指针 |
- Go 语言简介
- Go 语言环境安装
- Go 语言结构
- Go 语言基础语法
- Go 语言数据类型
- Go 语言变量
- Go 语言常量
- Go 语言运算符
- Go 语言条件语句
- Go 语言 if 语句
- Go 语言 if...else 语句
- Go 语言 if 语句嵌套
- Go 语言 switch 语句
- Go 语言 select 语句
- Go 语言循环语句
- Go 语言 for 循环
- Go 语言循环嵌套
- Go 语言 break 语句
- Go 语言 continue 语句
- Go 语言 goto 语句
- Go 语言函数
- Go 语言函数值传递值
- Go 语言函数引用传递值
- Go 语言函数作为值
- Go 语言函数闭包
- Go 语言函数方法
- Go 语言变量作用域
- Go 语言数组
- Go 语言多维数组
- Go 语言向函数传递数组
- Go 语言指针
- Go 语言指针数组
- Go 语言指向指针的指针
- Go 语言指针作为函数参数
- Go 语言结构体
- Go 语言切片(Slice)
- Go 语言范围(Range)
- Go 语言Map(集合)
- Go 语言递归函数
- Go 语言类型转换
- Go 语言接口
- Go 错误处理
- Go 语言开发工具