Go 的 golang.org/x/ 系列包和標準庫包有什麼區別?

yongxinz發表於2021-12-23

在開發過程中可能會遇到這樣的情況,有一些包是引入自不同地方的,比如:

  • 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、資料結構、演算法、程式設計、網路等各種常考題。

參考:

相關文章