Golang学习笔记: 常用标准库

在 Go 语言中,有很多内置的标准库包提供了各种功能,以下是一些常用的 Go 标准库包及其简要说明:

1. fmt

  • 功能:格式化输入输出。
  • 常用函数
    • fmt.Println(): 打印并自动换行。
    • fmt.Printf(): 格式化输出。
    • fmt.Scan(): 从标准输入读取数据。
    • fmt.Sprintf(): 格式化字符串并返回结果。

2. os

  • 功能:与操作系统进行交互,如文件操作、环境变量、进程控制等。
  • 常用函数
    • os.Open(): 打开文件。
    • os.Create(): 创建文件。
    • os.Remove(): 删除文件。
    • os.Getenv(): 获取环境变量。

3. io

  • 功能:提供基本的 I/O 操作接口和实用函数。
  • 常用接口/函数
    • io.Reader/io.Writer: 定义了读写接口。
    • io.Copy(): 从源 Reader 复制到目标 Writer
    • io/ioutil.ReadFile(): 读取文件内容为字节切片。

4. encoding/json

  • 功能:处理 JSON 编码和解码。
  • 常用函数
    • json.Marshal(): 将数据编码为 JSON 格式。
    • json.Unmarshal(): 将 JSON 格式数据解码为 Go 数据结构。

5. encoding/xml

  • 功能:处理 XML 编码和解码。
  • 常用函数
    • xml.Marshal(): 将数据编码为 XML 格式。
    • xml.Unmarshal(): 将 XML 格式数据解码为 Go 数据结构。

6. net/http

  • 功能:实现 HTTP 客户端和服务器功能。
  • 常用函数/类型
    • http.Get(): 发起 GET 请求。
    • http.Post(): 发起 POST 请求。
    • http.HandleFunc(): 注册 HTTP 处理函数。
    • http.ListenAndServe(): 启动 HTTP 服务器。

7. context

  • 功能:管理上下文和超时、取消信号。
  • 常用函数
    • context.Background(): 返回一个背景上下文,通常用作根上下文。
    • context.WithCancel(): 返回一个子上下文和取消函数。
    • context.WithTimeout(): 返回一个具有超时功能的上下文。

8. sync

  • 功能:提供同步原语,如互斥锁、读写锁等。
  • 常用类型/函数
    • sync.Mutex: 提供互斥锁。
    • sync.RWMutex: 提供读写锁。
    • sync.WaitGroup: 用于等待一组 Goroutine 完成。
    • sync.Once: 创建单例对象。
    • sync.Pool: 对象池。
    • sync.Map: 并发安全操作map。

9. time

  • 功能:处理时间和日期。
  • 常用函数/类型
    • time.Now(): 获取当前时间。
    • time.Sleep(): 暂停执行指定时间。
    • time.Parse(): 解析时间字符串。
    • time.Format(): 格式化时间为字符串。

10. math

  • 功能:提供数学常量和函数。
  • 常用函数
    • math.Sqrt(): 计算平方根。
    • math.Pow(): 计算幂。
    • math.Sin(): 计算正弦值。
    • math.Cos(): 计算余弦值。

11. strconv

  • 功能:字符串与基本数据类型之间的转换。
  • 常用函数
    • strconv.Itoa(): 整数转字符串。
    • strconv.Atoi(): 字符串转整数。
    • strconv.FormatFloat(): 格式化浮点数为字符串。

12. log

  • 功能:提供日志记录功能。
  • 常用函数
    • log.Println(): 记录日志并自动换行。
    • log.Printf(): 格式化日志记录。
    • log.Fatal(): 记录日志并调用 os.Exit() 退出程序。

13. flag

  • 功能:解析命令行标志。
  • 常用函数
    • flag.String(): 定义字符串标志。
    • flag.Int(): 定义整型标志。
    • flag.Parse(): 解析命令行标志。

14. regexp

  • 功能:支持正则表达式的匹配和操作。
  • 常用函数
    • regexp.MatchString(): 匹配字符串是否符合正则表达式。
    • regexp.FindAllString(): 找到所有符合正则表达式的字符串。

15. crypto

  • 功能:提供加密算法和功能。
  • 常用包
    • crypto/aes: 提供 AES 加密算法。
    • crypto/rsa: 提供 RSA 加密算法。
    • crypto/md5: 提供 MD5 哈希算法。
    • crypto/sha256: 提供 SHA-256 哈希算法。

总结

Go 的标准库包覆盖了从 I/O 操作、网络编程、数据编解码到同步和加密等多种常见需求。这些包在 Go 的应用开发中提供了强大的功能支持,是构建高效可靠应用程序的重要基础。理解这些常用包的功能和用法,可以提高编程效率和代码质量。

相关推荐
聪明蛋子哟4 小时前
Stagehand v3多语言SDK:Python/Go/Rust/Java下的浏览器自动化统一方案
python·golang·rust
福大大架构师每日一题14 小时前
ragflow v0.27.0 发布:Go 后端全面对齐、智能体搜索与知识编译大升级,超全更新解析
开发语言·后端·golang
JavaPub-rodert14 小时前
Go 后台如何同时兼容 MySQL、PostgreSQL、SQLite 和 SQL Server?从 ShiyuAdmin 看 GORM 多数据库适配
数据库·mysql·postgresql·golang·javapub·王仕宇
剩下了什么1 天前
float32 与 float64 精度陷阱:如何在 Go 中避免错误使用
开发语言·后端·golang
ttwuai1 天前
Go 后台接入 SSO 后菜单正常但接口 403,怎么排查权限链路?
开发语言·后端·golang
PC2005-cloud1 天前
Go学习笔记:基本概念与项目结构——GOPATH、Go Modules 与常用命令
笔记·学习·golang
ttwuai1 天前
Go 后台图片上传到对象存储后,预览 403/404 怎么排查?
开发语言·golang
名字还没想好☜2 天前
Go 1.23 range-over-func 迭代器实战:自定义可迭代类型、提前退出与惰性求值
开发语言·后端·golang·go·迭代器
灯澜忆梦2 天前
【基于GO的Web开发4】html/template 模板语法
后端·golang·html
圣殿骑士-Khtangc2 天前
Go-Kubernetes-Client-go编程从Pod管理到CRD开发
golang