当前位置: 首页 > news >正文

Go 1.25.1基本包

目录

如何查看基本包

基本包介绍

基础工具与 I/O

并发与上下文

时间与日志

网络与 Web

操作系统接口

编码/序列化/压缩

加密与证书

哈希

数学与随机

图像

模板/文本处理

数据库

Go 源码处理/工具

测试与性能

Unicode/文本编码

现代泛型工具(Go 1.21+ 引入,强烈推荐)

其他你列表里出现但业务少直接用的顶级包

明确不建议导入的目录


如何查看基本包

基本包介绍

基础工具与 I/O

  • fmt:格式化输入输出(Print*Sprintf 等)。
  • errors:错误构造与包装(errors.NewIsAsJoin)。
  • bufio:带缓冲的 Reader/Writer,减少系统调用。
  • bytes:字节切片处理(查找、替换、Buffer)。
  • strings:字符串处理(分割、拼接、查找、替换、Builder)。
  • strconv:字符串与数值/布尔/进制转换。
  • io / io/fs:流式读写接口、文件系统抽象;io.Copy/TeeReader 很常用。
  • path / path/filepath:路径拼接与分解(filepath 走本机规则)。
  • flag:命令行参数解析(port=8080)。
  • embed:把静态资源打进二进制(//go:embed)。
  • sort:排序与自定义比较。
  • container/{heap,list,ring}:堆、链表、环形链表基础容器。

并发与上下文

  • sync:互斥锁 Mutex、读写锁 RWMutexOnceCond 等。
  • sync/atomic:原子操作(无锁计数/标志位)。
  • context:取消/超时/携带请求范围数据,贯穿全链路。

时间与日志

  • time:时间点、定时器、格式化、时区数据(time/tzdata 可内置时区)。
  • log:简单日志。
  • log/slog:结构化日志(建议在新项目用它)。

网络与 Web

  • net:底层网络(TCP/UDP/DNS 解析、IP)。
  • net/http:HTTP 服务器与客户端(http.ListenAndServehttp.Client)。
    • net/http/httptest:HTTP 单测辅助。
    • net/http/httputil:反向代理、请求/响应 dump。
    • net/http/httptrace:跟踪一次 HTTP 请求各阶段耗时。
    • net/http/pprof:一键暴露 pprof 性能分析路由。
  • net/url:URL 解析与拼装。
  • net/mail:邮件头解析。
  • mime / mime/multipart:MIME 类型与多段表单上传(文件上传)。
  • net/textproto:文本协议辅助。
  • plugin:插件机制(特定平台/构建要求,少用)。

操作系统接口

  • os:文件/目录/环境变量/进程参数等。
  • os/exec:启动外部进程,管道通信。
  • os/signal:捕获信号(优雅退出)。
  • os/user:系统用户信息。
  • syscall:系统调用(底层,非跨平台,能不用尽量不用)。

编码/序列化/压缩

  • encoding/json:JSON 编解码(Encoder/Decoder 支持流式)。
  • encoding/xml/csv/gob/pem/asn1/binary/base64/base32/hex/ascii85:常见格式。
  • compress/{gzip,zlib,flate,lzw,bzip2}:压缩算法族。
  • encoding 顶级包:子包归类,不直接用。

加密与证书

  • crypto/aes, des, rsa, ecdsa, ed25519, hmac, sha1/256/512, sha3, subtle:常用算法。
  • crypto/tls:TLS 握手/配置(HTTPS 基石)。
  • crypto/x509 / x509/pkix:证书/私钥解析、验证。
  • crypto/rand:安全随机数(密钥用它,不要用 math/rand)。
  • crypto/hkdf, pbkdf2:密钥派生。
  • (列表里很多 crypto/internal/*crypto/fips140* 是标准库合规与实现细节,平时不导入。)

哈希

  • hash/{adler32,crc32,crc64,fnv,maphash}:非加密哈希函数;maphash 适合哈希表/防碰撞。
  • crypto/md5:已不安全,仅作校验。
  • hash 顶级包:接口定义。

数学与随机

  • math:基础数学常数与函数。
  • math/big:大整数/有理数(任意精度)。
  • math/bits:位运算加速。
  • math/cmplx:复数运算。
  • math/rand / math/rand/v2:伪随机数(非安全);v2 为更新版 API。

图像

  • image:通用图像接口与 RGBA 等基本类型。
  • image/{color,draw,gif,jpeg,png}:颜色模型、绘制、常见格式编解码。

模板/文本处理

  • text/template:纯文本模板(邮件/配置文件等)。
  • html/template:带 XSS 逃逸的 HTML 模板(Web 推荐用它)。
  • text/scanner:词法扫描器。
  • text/tabwriter:终端等宽对齐输出的排版器。
  • regexp / regexp/syntax:正则(syntax 是内部语法树,一般只用 regexp)。

数据库

  • database/sql:数据库抽象;需要配具体驱动(如 lib/pqmysql 等)。
  • database/sql/driver:写驱动的人用的接口定义。

Go 源码处理/工具

  • go/ast, token, parser, printer, format:Go 源码解析/打印/格式化(gofmt 的基石)。
  • go/types:类型检查。
  • go/build, build/constraint:源码构建标签/平台判定。
  • go/doc, go/doc/comment:文档抽取。
  • go/version:Go 版本解析。
  • debug/{elf,macho,pe,dwarf,gosym,buildinfo}:可执行文件/符号/调试信息处理。
  • index/suffixarray:后缀数组(文本检索)。

测试与性能

  • testing:单元测试(go test)。
  • testing/quick:属性测试(快速随机用例)。
  • testing/iotest/fstest:I/O/文件系统测试辅助。
  • runtime/pprof / net/http/pprof:CPU/内存/阻塞等性能剖析。
  • expvar:导出运行时指标到 HTTP(/debug/vars)。
  • runtime/metrics:标准化运行时指标读取。

Unicode/文本编码

  • unicode / unicode/{utf8,utf16}:字符集与编码处理。
  • mime/quotedprintable:QP 编码(邮件)。

现代泛型工具(Go 1.21+ 引入,强烈推荐)

  • cmp:通用比较(CompareLess 等)。
  • slices:切片工具(CloneEqualSortIndexDelete…)。
  • maps:map 工具(KeysValuesCloneEqual…)。

其他你列表里出现但业务少直接用的顶级包

  • reflect:反射(动态取字段/调用,慎用)。
  • unique / weak / structs / iter:近版本新增/较少直接用的通用设施:
    • iter:为“基于函数的迭代器”约定提供支持(与 slices/maps 等范式配合)。
    • unique / weak / structs:这几个包偏底层/小众,更多用于库与运行时的支撑或高级用法;业务日常很少直接依赖,建议按需 go doc 包名 查看你这版的 API 说明。
  • plugin:动态插件(有限平台与构建限制)。
  • cmp/slices/maps/log/slog/math/rand/v2:上面已解释——是新版常用增强。

明确不建议导入的目录

  • internal/...:标准库/工具链内部实现与测试基建;外部不能导入
  • runtime/...:运行时/调度器/GC/trace 等底层;除个别顶层 runtime 函数外,业务很少直接用。
  • vendor/golang.org/x/...:vendor 进标准库内部使用的第三方子包镜像;业务请用正常的 golang.org/x/... 依赖

http://www.xdnf.cn/news/1466299.html

相关文章:

  • 凌力尔特(LINEAR)滤波器LTC1068的二阶滤波器模块设计
  • STM32 USBx Device HID standalone 移植示例 LAT1466
  • 全球企业内容管理ECM市场规模增长趋势与未来机遇解析
  • (4)什么时候引入Seata‘‘
  • 黄金上门回收小程序开发
  • 多路转接介绍及代码实现
  • Rust 基础语法
  • 设计模式笔记
  • 从技术选型到现场配置:DDC 楼宇自控系统全流程落地方案(2025 版)
  • 织信低代码:用更聪明的方式,把想法变成现实!
  • 多语言Qt Linguist
  • 职场礼仪实训室:健康管理专业人才培养的核心支柱与创新实践
  • Springboot实现国际化(MessageSource)
  • AI Compass前沿速览:Kimi K2、InfinityHuman-AI数字人、3D-AI桌面伴侣、叠叠社–AI虚拟陪伴
  • 查询语言的进化:SQL之后,为什么是GQL?数据世界正在改变
  • 生态 | 华院计算与深至科技达成战略合作,携手推动AI+医学影像算法升级迭代
  • 代码随想录70期day3
  • 算法(keep learning)
  • 外包干了3年,技术退步太明显了。。。。。
  • 计算机网络1 第一章 概述——以寄邮件比喻整个流程
  • threeJS 实现开花的效果
  • 概率论第三讲——多维随机变量及其分布
  • 要搞清楚你为什么上班
  • 大型语言模型SEO(LLM SEO)完全手册:驾驭搜索新范式
  • 深入剖析 ThreadLocal 及其生态系统:从基础用法到源码实现,从设计思想到工程实践
  • Android14 init启动Zygote详解
  • 必知!机器人的分类与应用:RPA、人形与工业机器人
  • 大数据毕业设计选题推荐-基于大数据的高级大豆农业数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
  • solidity函数篇
  • 5分钟征服Linux:20个神级命令+系统架构解密,让命令行恐惧症瞬间治愈!