欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > golang 1.24全部内置包、常用第三方库、包管理

golang 1.24全部内置包、常用第三方库、包管理

2026/5/4 13:24:33 来源:https://blog.csdn.net/c39660570/article/details/148389939  浏览:    关键词:golang 1.24全部内置包、常用第三方库、包管理

数据操作相关

简介
strings字符串操作
strconv字符串类型转换
time时间测量及显示
math数学函数、随机数
container数据结构
regexp正则表达式
bytes字节操作
hashhash函数
index字符串搜索
sort排序
text文本操作
cmp比较值相等
iter迭代器
mapsmap操作
slices切片操作
structs结构体
unique相同的值在内存中只存一次

IO、编码相关

简介
archive打包
compress压缩
encoding编码,json等
crypto加密
fmt标准IO
ioIO接口、实用工具
bufio缓冲区IO
os操作系统函数,读文件等
database数据库驱动
flag命令行参数解析
htmlhtml转译 数据驱动模板
mime电子邮件
image图像操作
net网络,http、rpc等实现
path斜杠分割路径
expvar公共变量
unicodeunicode处理
log日志

控制、调试相关

简介
builtin基础数据类型、基础函数,不需要导入
reflect反射
unsafe直接操作内存
weak弱引用,不阻止内存回收
arena手动管理内存
context协程上下文
errors错误处理
sync同步单元
runtime运行时信息,debug profile
debug读取调试信息、解析Go符号表等
embed编译时将资源文件一起打包
plugin动态模块加载
syscall系统调用
testing测试工具

第三方库

简介
GinWeb框架,RESTful
FiberWeb框架,基于Fasthttp,高性能
Gorilla MUXHTTP路由管理
istio服务网格
go-zero微服务组件
go-kit微服务组件
GORMORM(对象关系映射)库
Cobra命令行工具,替代内置包flag
Viper读取配置
Logrus日志库
testify测试框架
GoConvey测试框架

包管理

创建项目

> go mod init awesomeProject

会自动创建 go.mod 文件

module awesomeProjectgo 1.24.3

创建代码文件 main.go

package mainimport ("github.com/gin-gonic/gin""net/http"
)func main() {// 创建默认的 gin 引擎r := gin.Default()// 定义一个简单的路由r.GET("/", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"message": "Hello, Gin!",})})// 启动服务器err := r.Run(":8080")if err != nil {return}
}

构建并运行

> go mod tidy

更新 go.mod 依赖项,会根据代码中的 import 下载并引入依赖包,并移除不需要的包

go.mod 示例

module awesomeProject2go 1.24.3require github.com/gin-gonic/gin v1.10.1require (github.com/bytedance/sonic v1.13.3 // indirectgithub.com/bytedance/sonic/loader v0.2.4 // indirect
)
> go build

构建,生成可执行文件

vendor

> go mod vendor

将第三方依赖包存入工程中的vendor目录,go build会优先从vendor中查找依赖项。更新vendor目录需要重复执行指令。

依赖包版本

版本格式为 v(major).(minor).(patch),比如 v1.2.3。
一般认为,major版本更新不向后兼容,minor版本更新向后兼容,而 import 会区分major版本,比如

import "github.com/pelletier/go-toml/v2"

即一个项目可以同时使用一个依赖包的两个版本。

go mod tidy 版本选择:

  • 直接依赖包,即代码中 import 的包,会选择该major版本的最新小版本
  • 间接依赖包,即 import 的包依赖的其他包,会选择最高的显式依赖版本,比如,B依赖D的 1.0.0,C依赖D的1.2.3,则D选择1.2.3

更新版本:

> go get -u

更新minor版本,比如 v1.2.3 更新到 v1.3.1

> go get -u=patch

只更新patch版本,比如 v1.2.3 更新到 v1.2.5

查看可更新列表:

> go list -u -m all

replace:
替换依赖库,比如原库不存在,或者修复原库的bug,可在 go.mod 中使用 replace 替换

replace example.com/theirmodule v1.2.3 => example.com/myfork/theirmodule v1.2.3-fixed

exclude:
排除依赖库,可用于排除间接依赖但实际不会被加载的包

exclude example.com/theirmodule v1.3.0

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词