2017-03-17 45 views
2

我一直在使用go很短的时间,我一直注意到Go(标准库)和golang.org/x/之间存在重复的包。golang.org软件包和标准库之间的区别

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

被释放两次,我到目前为止已经发现有某些样本包:

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

回答

1

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

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

使用标准库软件包,除非您强烈需要使用/x/变体,并且可以接受重大变更的风险。

2

golang.org/x/命名空间中的许多软件包曾经只存在于那里,随后被采纳到标准库中。为了向后兼容,golang.org/x/版本仍然存在。

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

相关问题