golang.org软件包和标准库之间的区别

Ben*_*jam 6 go

我现在一直在使用go,我一直注意到Go(标准库)和golang.org/x/之间存在重复的包.

我的问题是:为什么他们两次被释放?在这两个中,我应该使用哪一个(更新,规范等)?

一些示例包已发布两次,我目前已注意到:

  • golang.org/x/net/html VS net/html
  • golang.org/x/crypto VS crypto
  • 也许更多我现在不记得了......

eli*_*rar 5

https://golang.org/pkg/#subrepo

这些包是 Go 项目的一部分,但位于 Go 主树之外。它们是在比 Go 核心更宽松的兼容性要求下开发的。

使用标准库包,除非您强烈需要使用该/x/变体并且可以接受破坏性更改的风险。


Fli*_*mzy 5

命名空间中的许多包golang.org/x/过去只存在于该命名空间中,后来被采用到标准库中。为了向后兼容,golang.org/x/保留该版本。

不过,新应用程序应始终使用标准库版本,除非有令人信服的理由(例如使用仍使用旧版本的库)。