> For the complete documentation index, see [llms.txt](https://denglj.gitbook.io/essential-go/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://denglj.gitbook.io/essential-go/common-standard-libraries.md).

# 第二部分 常用标准库

- [25 文件和I/O](https://denglj.gitbook.io/essential-go/common-standard-libraries/25-files-and-io.md)
- [读文件](https://denglj.gitbook.io/essential-go/common-standard-libraries/25-files-and-io/reading-files.md)
- [写文件](https://denglj.gitbook.io/essential-go/common-standard-libraries/25-files-and-io/writing-files.md)
- [文件操作](https://denglj.gitbook.io/essential-go/common-standard-libraries/25-files-and-io/file-operations.md)
- [目录操作](https://denglj.gitbook.io/essential-go/common-standard-libraries/25-files-and-io/directory-operations.md)
- [文件路径操作](https://denglj.gitbook.io/essential-go/common-standard-libraries/25-files-and-io/file-path-operations.md)
- [I/O相关的接口](https://denglj.gitbook.io/essential-go/common-standard-libraries/25-files-and-io/io-related-interfaces.md)
- [26 时间和日期](https://denglj.gitbook.io/essential-go/common-standard-libraries/26-time-and-date.md)
- [时间日期基本操作](https://denglj.gitbook.io/essential-go/common-standard-libraries/26-time-and-date/time-and-date-basic-operations.md)
- [时间格式化](https://denglj.gitbook.io/essential-go/common-standard-libraries/26-time-and-date/format-time.md)
- [时间字符串解析](https://denglj.gitbook.io/essential-go/common-standard-libraries/26-time-and-date/parse-time.md)
- [像strftime那样格式化时间](https://denglj.gitbook.io/essential-go/common-standard-libraries/26-time-and-date/format-time-like-strftime.md)
- [时间和日期比较](https://denglj.gitbook.io/essential-go/common-standard-libraries/26-time-and-date/compare-time-and-date.md)
- [27 命令行传参](https://denglj.gitbook.io/essential-go/common-standard-libraries/27-command-line-arguments.md)
- [28 记日志](https://denglj.gitbook.io/essential-go/common-standard-libraries/28-logging.md)
- [29 执行命令](https://denglj.gitbook.io/essential-go/common-standard-libraries/29-executing-commands.md)
- [30 十六进制和base64编码](https://denglj.gitbook.io/essential-go/common-standard-libraries/30-hex-base64-encoding.md)
- [31 JSON](https://denglj.gitbook.io/essential-go/common-standard-libraries/31-json.md)
- [32 XML](https://denglj.gitbook.io/essential-go/common-standard-libraries/32-xml.md)
- [33 CSV](https://denglj.gitbook.io/essential-go/common-standard-libraries/33-csv.md)
- [34 YAML](https://denglj.gitbook.io/essential-go/common-standard-libraries/34-yaml.md)
- [35 SQL](https://denglj.gitbook.io/essential-go/common-standard-libraries/35-sql.md)
- [36 HTTP客户端](https://denglj.gitbook.io/essential-go/common-standard-libraries/36-http-client.md)
- [HTTP POST](https://denglj.gitbook.io/essential-go/common-standard-libraries/36-http-client/http-post.md)
- [PUT请求发送JSON对象](https://denglj.gitbook.io/essential-go/common-standard-libraries/36-http-client/put-request-of-json-object.md)
- [37 HTTP服务端](https://denglj.gitbook.io/essential-go/common-standard-libraries/37-http-server.md)
- [38 文本和HTML模板](https://denglj.gitbook.io/essential-go/common-standard-libraries/38-text-and-html-templates.md)
- [39 反射(Reflection)](https://denglj.gitbook.io/essential-go/common-standard-libraries/39-reflection.md)
- [原始类型](https://denglj.gitbook.io/essential-go/common-standard-libraries/39-reflection/primitive-types.md)
- [指针](https://denglj.gitbook.io/essential-go/common-standard-libraries/39-reflection/pointers.md)
- [结构体](https://denglj.gitbook.io/essential-go/common-standard-libraries/39-reflection/structs.md)
- [切片](https://denglj.gitbook.io/essential-go/common-standard-libraries/39-reflection/slice.md)
- [reflect.Kind](https://denglj.gitbook.io/essential-go/common-standard-libraries/39-reflection/reflect-kind.md)
- [反射的用处](https://denglj.gitbook.io/essential-go/common-standard-libraries/39-reflection/uses-for-reflection.md)
- [40 上下文(Context)](https://denglj.gitbook.io/essential-go/common-standard-libraries/40-context.md)
- [创建上下文](https://denglj.gitbook.io/essential-go/common-standard-libraries/40-context/creating-a-context.md)
- [用上下文为HTTP请求设置超时](https://denglj.gitbook.io/essential-go/common-standard-libraries/40-context/set-timeout-for-http-requests.md)
- [用上下文携带值](https://denglj.gitbook.io/essential-go/common-standard-libraries/40-context/context-with-value.md)
- [编写可取消的函数](https://denglj.gitbook.io/essential-go/common-standard-libraries/40-context/writing-cancellable-functions.md)
- [上下文就是带值的树](https://denglj.gitbook.io/essential-go/common-standard-libraries/40-context/context-is-a-tree-of-values.md)
- [context.TODO() vs. context.Background()](https://denglj.gitbook.io/essential-go/common-standard-libraries/40-context/context-todo-vs-context-background.md)
- [41 fmt包](https://denglj.gitbook.io/essential-go/common-standard-libraries/41-package-fmt.md)
- [fmt基本用法](https://denglj.gitbook.io/essential-go/common-standard-libraries/41-package-fmt/basic-fmt.md)
- [Stringer接口](https://denglj.gitbook.io/essential-go/common-standard-libraries/41-package-fmt/stringer-interface.md)
- [42 测试](https://denglj.gitbook.io/essential-go/common-standard-libraries/42-testing.md)
- [基本测试](https://denglj.gitbook.io/essential-go/common-standard-libraries/42-testing/basic-test.md)
- [表格驱动的单元测试](https://denglj.gitbook.io/essential-go/common-standard-libraries/42-testing/table-driven-unit-tests.md)
- [使用setUp和tearDown函数](https://denglj.gitbook.io/essential-go/common-standard-libraries/42-testing/testing-using-setup-and-teardown-function.md)
- [性能测试](https://denglj.gitbook.io/essential-go/common-standard-libraries/42-testing/benchmarks.md)
- [样例测试(自注释测试)](https://denglj.gitbook.io/essential-go/common-standard-libraries/42-testing/example-tests-self-documenting-tests.md)
- [测试HTTP请求](https://denglj.gitbook.io/essential-go/common-standard-libraries/42-testing/testing-http-requests.md)
- [在测试中设置/重置模拟(mock)函数](https://denglj.gitbook.io/essential-go/common-standard-libraries/42-testing/set-reset-mock-function-in-tests.md)
- [以HTML格式查看代码覆盖率](https://denglj.gitbook.io/essential-go/common-standard-libraries/42-testing/view-code-coverage-in-html-format.md)
- [43 利用cgo在Go中调用C](https://denglj.gitbook.io/essential-go/common-standard-libraries/43-calling-c-from-go-with-cgo.md)
- [cgo上手教程](https://denglj.gitbook.io/essential-go/common-standard-libraries/43-calling-c-from-go-with-cgo/cgo-first-steps-tutorial.md)
- [从Go调用C函数](https://denglj.gitbook.io/essential-go/common-standard-libraries/43-calling-c-from-go-with-cgo/calling-c-function-from-go.md)
- [全方位连接C和Go代码](https://denglj.gitbook.io/essential-go/common-standard-libraries/43-calling-c-from-go-with-cgo/wire-c-and-go-code-in-all-directions.md)
- [44 使用pprof分析Go程序](https://denglj.gitbook.io/essential-go/common-standard-libraries/44-profiling-using-go-tool-pprof.md)
- [CPU和内存基本分析](https://denglj.gitbook.io/essential-go/common-standard-libraries/44-profiling-using-go-tool-pprof/basic-cpu-and-memory-profiling.md)
- [使用benchmark生成分析文件](https://denglj.gitbook.io/essential-go/common-standard-libraries/44-profiling-using-go-tool-pprof/using-benchmarks-to-create-profile.md)
- [内存基本分析](https://denglj.gitbook.io/essential-go/common-standard-libraries/44-profiling-using-go-tool-pprof/basic-memory-profiling.md)
- [设置CPU/Block分析速率](https://denglj.gitbook.io/essential-go/common-standard-libraries/44-profiling-using-go-tool-pprof/set-cpublock-profile-rate.md)
- [访问分析(profile)文件](https://denglj.gitbook.io/essential-go/common-standard-libraries/44-profiling-using-go-tool-pprof/accessing-profile-file.md)
- [45 交叉编译](https://denglj.gitbook.io/essential-go/common-standard-libraries/45-cross-compilation.md)
- [46 使用构建标签进行条件编译](https://denglj.gitbook.io/essential-go/common-standard-libraries/46-conditional-compilation-with-build-tags.md)
- [开发和生产环境编译](https://denglj.gitbook.io/essential-go/common-standard-libraries/46-conditional-compilation-with-build-tags/dev-vs-production-builds.md)
- [47 内联函数](https://denglj.gitbook.io/essential-go/common-standard-libraries/47-inlining-functions.md)
- [48 用sync.Pool以获得更好性能](https://denglj.gitbook.io/essential-go/common-standard-libraries/48-sync-pool-for-better-performance.md)
- [49 gob](https://denglj.gitbook.io/essential-go/common-standard-libraries/49-gob.md)
- [50 插件机制](https://denglj.gitbook.io/essential-go/common-standard-libraries/50-plugin.md)
- [51 HTTP服务中间件](https://denglj.gitbook.io/essential-go/common-standard-libraries/51-http-server-middleware.md)
- [一般处理(handler)函数](https://denglj.gitbook.io/essential-go/common-standard-libraries/51-http-server-middleware/normal-handler-function.md)
- [中间件里计算handler函数的耗时](https://denglj.gitbook.io/essential-go/common-standard-libraries/51-http-server-middleware/middleware-calculate-time-required-for-handlerfunc-to-execute.md)
- [CORS中间件](https://denglj.gitbook.io/essential-go/common-standard-libraries/51-http-server-middleware/cors-middleware.md)
- [Auth中间件](https://denglj.gitbook.io/essential-go/common-standard-libraries/51-http-server-middleware/auth-middleware.md)
- [恢复handler以防止服务端崩溃](https://denglj.gitbook.io/essential-go/common-standard-libraries/51-http-server-middleware/recovery-handler-to-prevent-server-from-crashing.md)
- [52 Go中的Protobuf](https://denglj.gitbook.io/essential-go/common-standard-libraries/52-protobuf-in-go.md)
- [在Go中使用Protobuf](https://denglj.gitbook.io/essential-go/common-standard-libraries/52-protobuf-in-go/using-protobuf-with-go.md)
- [53 控制台I/O](https://denglj.gitbook.io/essential-go/common-standard-libraries/53-console-io.md)
- [54 密码学](https://denglj.gitbook.io/essential-go/common-standard-libraries/54-cryptography.md)
- [使用AES-GCM进行加密和解密](https://denglj.gitbook.io/essential-go/common-standard-libraries/54-cryptography/encryption-and-decryption-with-aes-gcm.md)
- [55 图片处理(PNG, JPEG, BMP, TIFF, WEBP, VP8, GIF)](https://denglj.gitbook.io/essential-go/common-standard-libraries/55-images-png-jpeg-bmp-tiff-webp-vp8-gif.md)
- [基本概念](https://denglj.gitbook.io/essential-go/common-standard-libraries/55-images-png-jpeg-bmp-tiff-webp-vp8-gif/basic-concepts.md)
- [加载和保存图片](https://denglj.gitbook.io/essential-go/common-standard-libraries/55-images-png-jpeg-bmp-tiff-webp-vp8-gif/loading-and-saving-image.md)
- [裁剪图片](https://denglj.gitbook.io/essential-go/common-standard-libraries/55-images-png-jpeg-bmp-tiff-webp-vp8-gif/cropping-image.md)
- [将图片由彩色转为灰度](https://denglj.gitbook.io/essential-go/common-standard-libraries/55-images-png-jpeg-bmp-tiff-webp-vp8-gif/convert-color-image-to-grayscale.md)
- [调整图片尺寸](https://denglj.gitbook.io/essential-go/common-standard-libraries/55-images-png-jpeg-bmp-tiff-webp-vp8-gif/resizing-images.md)
- [56 Go语言命令行工具](https://denglj.gitbook.io/essential-go/common-standard-libraries/56-the-go-command.md)
- [go fmt](https://denglj.gitbook.io/essential-go/common-standard-libraries/56-the-go-command/go-fmt.md)
- [go run](https://denglj.gitbook.io/essential-go/common-standard-libraries/56-the-go-command/go-run.md)
- [go build](https://denglj.gitbook.io/essential-go/common-standard-libraries/56-the-go-command/go-build.md)
- [go clean](https://denglj.gitbook.io/essential-go/common-standard-libraries/56-the-go-command/go-clean.md)
- [go get](https://denglj.gitbook.io/essential-go/common-standard-libraries/56-the-go-command/go-get.md)
- [go env](https://denglj.gitbook.io/essential-go/common-standard-libraries/56-the-go-command/go-env.md)
- [go test](https://denglj.gitbook.io/essential-go/common-standard-libraries/56-the-go-command/go-test.md)
- [57 利用持续集成(CI)服务测试代码](https://denglj.gitbook.io/essential-go/common-standard-libraries/57-testing-code-with-ci-services.md)
- [利用Github Actions测试Go代码](https://denglj.gitbook.io/essential-go/common-standard-libraries/57-testing-code-with-ci-services/test-go-code-with-github-actions.md)
- [58 Windows图形界面(GUI)编程](https://denglj.gitbook.io/essential-go/common-standard-libraries/58-windows-gui-programming.md)
- [第一个Windows应用](https://denglj.gitbook.io/essential-go/common-standard-libraries/58-windows-gui-programming/a-first-window-app.md)
