我现在一直在使用go,我一直注意到Go(标准库)和golang.org/x /之间存在重复的包。
我的问题是:他们为什么两次被释放?在这两个中,我应该使用哪一个(更新,规范等)?
到目前为止我发布的一些示例包已发布两次:
golang.org/x/net/html
vs net/html
golang.org/x/crypto
vs crypto
答案 0 :(得分:4)
golang.org/x/
命名空间中的许多软件包过去只在那里生存,后来被采用到标准库中。为了向后兼容,golang.org/x/
版本仍然存在。
新应用程序应始终使用标准库版本,除非有其他令人信服的理由(例如使用仍使用旧版本的库)。
答案 1 :(得分:3)
https://github.com/golang/go/wiki/SubRepositories
这些包是Go项目的一部分,但在主Go树之外。 它们是在比Go核心更宽松的兼容性要求下开发的。
使用标准库包,除非您非常需要使用/x/
变体,并且可以接受破坏更改的风险。