# 第二部分 常用标准库

- [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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://denglj.gitbook.io/essential-go/common-standard-libraries.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
