Go 的 golang.org/x/ 系列包和标准库包有什么区别?

简介: Go 的 golang.org/x/ 系列包和标准库包有什么区别?

在开发过程中可能会遇到这样的情况,有一些包是引入自不同地方的,比如:


  • golang.org/x/net/htmlnet/html


  • golang.org/x/cryptocrypto


那这是什么原因呢?


引用 Go 官方 Wiki 的说法:


The golang.org/x/... repositories are part of the Go Project but outside the main Go tree.

They are developed under looser compatibility requirements than the Go core. In general, they will support the previous two releases and tip.


大概意思就是,Go 标准库的包对向前兼容性有严格的标准。虽然 golang.org/x/... 系列包也是 Go 项目的一部分,但是在比 Go 标准库包更宽松的兼容性标准下开发,一般它们支持向前兼容两个版本。


golang.org/x/... 为官方的辅助包,是一种具有官方试验性质的包, 也就是说不排除有 BUG, 或者可能健壮性不是特别好;正式的标准库是有保障的包,前者有些成熟的功能会慢慢的放到标准库包里。


热情推荐:


  • 技术博客 硬核后端技术干货,内容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。


  • Go 程序员 Go 学习路线图,包括基础专栏,进阶专栏,源码阅读,实战开发,面试刷题,必读书单等一系列资源。


  • 面试题汇总 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。


参考:



目录
相关文章
|
12天前
|
Linux Go iOS开发
怎么禁用 vscode 中点击 go 包名时自动打开浏览器跳转到 pkg.go.dev
本文介绍了如何在 VSCode 中禁用点击 Go 包名时自动打开浏览器跳转到 pkg.go.dev 的功能。通过将 gopls 的 `ui.navigation.importShortcut` 设置为 "Definition",可以实现仅跳转到定义处而不打开链接。具体操作步骤包括:打开设置、搜索 gopls、编辑 settings.json 文件并保存更改,最后重启 VSCode 使设置生效。
37 7
怎么禁用 vscode 中点击 go 包名时自动打开浏览器跳转到 pkg.go.dev
|
3月前
|
Shell Go API
Go语言grequests库并发请求的实战案例
Go语言grequests库并发请求的实战案例
|
27天前
|
JSON Go 开发者
go-carbon v2.5.0 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持。
36 4
|
1月前
|
存储 Rust Go
Go nil 空结构体 空接口有什么区别?
本文介绍了Go语言中的`nil`、空结构体和空接口的区别。`nil`是预定义的零值变量,适用于指针、管道等类型;空结构体大小为0,多个空结构体实例指向同一地址;空接口由`_type`和`data`字段组成,仅当两者均为`nil`时,空接口才为`nil`。
Go nil 空结构体 空接口有什么区别?
|
26天前
|
Go 索引
go语言使用strings包
go语言使用strings包
23 3
|
1月前
|
编译器 Go 开发者
go语言中导入相关包
【11月更文挑战第1天】
32 3
|
1月前
|
存储 Cloud Native Shell
go库介绍:Golang中的Viper库
Viper 是 Golang 中的一个强大配置管理库,支持环境变量、命令行参数、远程配置等多种配置来源。本文详细介绍了 Viper 的核心特点、应用场景及使用方法,并通过示例展示了其强大功能。无论是简单的 CLI 工具还是复杂的分布式系统,Viper 都能提供优雅的配置管理方案。
|
1月前
|
Unix Linux Go
go进阶编程:Golang中的文件与文件夹操作指南
本文详细介绍了Golang中文件与文件夹的基本操作,包括读取、写入、创建、删除和遍历等。通过示例代码展示了如何使用`os`和`io/ioutil`包进行文件操作,并强调了错误处理、权限控制和路径问题的重要性。适合初学者和有经验的开发者参考。
|
1月前
|
JSON 安全 网络协议
go语言使用内置函数和标准库
【10月更文挑战第18天】
20 3
|
1月前
|
JSON 监控 安全
go语言选择合适的工具和库
【10月更文挑战第17天】
14 2