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

时间:2017-03-17 03:22:02

标签: go

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

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

到目前为止我发布的一些示例包已发布两次:

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

2 个答案:

答案 0 :(得分:4)

golang.org/x/命名空间中的许多软件包过去只在那里生存,后来被采用到标准库中。为了向后兼容,golang.org/x/版本仍然存在。

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

答案 1 :(得分:3)

https://github.com/golang/go/wiki/SubRepositories

  

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

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