欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
全部教程·
Go语言·
Go语言圣经
[目录]
·
3. 基础数据类型
Go语言圣经
0.1. Go语言起源
0.2. Go语言项目
0.3. 本书的组织
0.4. 更多的信息
0.5. 致谢
1. 入门
1.1. Hello, World
1.2. 命令行参数
1.3. 查找重复的行
1.4. GIF动画
1.5. 获取URL
1.6. 并发获取多个URL
1.7. Web服务
1.8. 本章要点
2. 程序结构
2.1. 命名
2.2. 声明
2.3. 变量
2.4. 赋值
2.5. 类型
2.6. 包和文件
2.7. 作用域
3. 基础数据类型
3.1. 整型
3.2. 浮点数
3.3. 复数
3.4. 布尔型
3.5. 字符串
3.6. 常量
4. 复合数据类型
4.1 数组
4.2 Slice
4.3 Map
4.4 结构体
4.5 JSON
4.6 文本和HTML模板
5. 函数
5.1. 函数声明
5.2. 递归
5.3. 多返回值
5.4. 错误
5.5. 函数值
5.6. 匿名函数
5.7. 可变参数
5.8. Deferred函数
5.9. Panic异常
5.10. Recover捕获异常
6. 方法
6.1. 方法声明
6.2. 基于指针对象的方法
6.3. 嵌入结构体扩展类型
6.4. 方法值和表达式
6.5. 示例: Bit数组
6.6. 封装
7. 接口
7.1. 接口是合约
7.2. 接口类型
7.3. 实现接口的条件
7.4. flag.Value接口
7.5. 接口值
7.6. sort.Interface接口
7.7. http.Handler接口
7.8. error接口
7.9. 示例: 表达式求值
7.10. 类型断言
7.11. 识别错误类型
7.12. 查询接口
7.13. 类型分支
7.14. XML解码
7.15. 补充几点
8. Go协程和通道
8.1. Goroutines
8.2. 并发的Clock服务
8.3. 并发的Echo服务
8.4. Channels
8.5. 并发的循环
8.6. 并发的Web爬虫
8.7. 多路复用
8.8. 并发的字典遍历
8.9. 并发的退出
8.10. 聊天服务
9. 并发
9.1. 竞争条件
9.2. sync.Mutex互斥锁
9.3. sync.RWMutex读写锁
9.4. 内存同步
9.5. sync.Once初始化
9.6. 竞争条件检测
9.7. 并发的非阻塞缓存
9.8. Goroutines和线程
10. 包和工具
10.1. 包简介
10.2. 导入路径
10.3. 包声明
10.4. 导入声明
10.5. 包的匿名导入
10.6. 包和命名
10.7. 工具
11. 测试
11.1. go test
11.2. 测试函数
11.3. 测试覆盖率
11.4. 基准测试
11.5. 剖析
11.6. 示例函数
12. 反射
12.1. 为何需要反射
12.2. reflect.Type
12.3. 递归打印
12.4. 编码S表达式
12.5. reflect.Value修改值
12.6. 解码S表达式
12.7. 获取结构体字段
12.8. 显示类型的方法集
12.9. 几点忠告
13. 底层编程
13.1. unsafe.Sizeof
13.2. unsafe.Pointer
13.3. 深度相等判断
13.4. cgo调用C代码
13.5. 几点忠告
Go语言圣经
0.1. Go语言起源
0.2. Go语言项目
0.3. 本书的组织
0.4. 更多的信息
0.5. 致谢
1. 入门
1.1. Hello, World
1.2. 命令行参数
1.3. 查找重复的行
1.4. GIF动画
1.5. 获取URL
1.6. 并发获取多个URL
1.7. Web服务
1.8. 本章要点
2. 程序结构
2.1. 命名
2.2. 声明
2.3. 变量
2.4. 赋值
2.5. 类型
2.6. 包和文件
2.7. 作用域
3. 基础数据类型
3.1. 整型
3.2. 浮点数
3.3. 复数
3.4. 布尔型
3.5. 字符串
3.6. 常量
4. 复合数据类型
4.1 数组
4.2 Slice
4.3 Map
4.4 结构体
4.5 JSON
4.6 文本和HTML模板
5. 函数
5.1. 函数声明
5.2. 递归
5.3. 多返回值
5.4. 错误
5.5. 函数值
5.6. 匿名函数
5.7. 可变参数
5.8. Deferred函数
5.9. Panic异常
5.10. Recover捕获异常
6. 方法
6.1. 方法声明
6.2. 基于指针对象的方法
6.3. 嵌入结构体扩展类型
6.4. 方法值和表达式
6.5. 示例: Bit数组
6.6. 封装
7. 接口
7.1. 接口是合约
7.2. 接口类型
7.3. 实现接口的条件
7.4. flag.Value接口
7.5. 接口值
7.6. sort.Interface接口
7.7. http.Handler接口
7.8. error接口
7.9. 示例: 表达式求值
7.10. 类型断言
7.11. 识别错误类型
7.12. 查询接口
7.13. 类型分支
7.14. XML解码
7.15. 补充几点
8. Go协程和通道
8.1. Goroutines
8.2. 并发的Clock服务
8.3. 并发的Echo服务
8.4. Channels
8.5. 并发的循环
8.6. 并发的Web爬虫
8.7. 多路复用
8.8. 并发的字典遍历
8.9. 并发的退出
8.10. 聊天服务
9. 并发
9.1. 竞争条件
9.2. sync.Mutex互斥锁
9.3. sync.RWMutex读写锁
9.4. 内存同步
9.5. sync.Once初始化
9.6. 竞争条件检测
9.7. 并发的非阻塞缓存
9.8. Goroutines和线程
10. 包和工具
10.1. 包简介
10.2. 导入路径
10.3. 包声明
10.4. 导入声明
10.5. 包的匿名导入
10.6. 包和命名
10.7. 工具
11. 测试
11.1. go test
11.2. 测试函数
11.3. 测试覆盖率
11.4. 基准测试
11.5. 剖析
11.6. 示例函数
12. 反射
12.1. 为何需要反射
12.2. reflect.Type
12.3. 递归打印
12.4. 编码S表达式
12.5. reflect.Value修改值
12.6. 解码S表达式
12.7. 获取结构体字段
12.8. 显示类型的方法集
12.9. 几点忠告
13. 底层编程
13.1. unsafe.Sizeof
13.2. unsafe.Pointer
13.3. 深度相等判断
13.4. cgo调用C代码
13.5. 几点忠告
第三章 基础数据类型
虽然从底层而言,所有的数据都是由比特组成,但计算机一般操作的是固定大小的数,如整数、浮点数、比特数组、内存地址等。进一步将这些数组织在一起,就可表达更多的对象,例如数据包、像素点、诗歌,甚至其他任何对象。Go语言提供了丰富的数据组织形式,这依赖于Go语言内置的数据类型。这些内置的数据类型,兼顾了硬件的特性和表达复杂数据结构的便捷性。
Go语言将数据类型分为四类:基础类型、复合类型、引用类型和接口类型。本章介绍基础类型,包括:数字、字符串和布尔型。复合数据类型——数组(4.1)和结构体(4.2)——是通过组合简单类型,来表达更加复杂的数据结构。引用类型包括指针(2.3.2)、切片(4.2))、字典(4.3)、函数(5)、通道(8),虽然数据种类很多,但它们都是对程序中一个变量或状态的间接引用。这意味着对任一引用类型数据的修改都会影响所有该引用的拷贝。我们将在第7章介绍接口类型。
下一章:3.1. 整型
Go语言的数值类型包括几种不同大小的整数、浮点数和复数。每种数值类型都决定了对应的大小范围和是否支持正负符号。让我们先从整数类型开始介绍。 Go语言同时提供了有符号和无符号类型的整数运算。这里有int8、int16 ...
AI 中文社