Go 部落格

Go 1.18 Beta 1 已釋出,支援泛型

Russ Cox,代表 Go 團隊
2021 年 12 月 14 日

我們剛剛釋出了 Go 1.18 Beta 1,您可以訪問下載頁面獲取。

Go 1.18 的官方版本還需要幾個月才能釋出。這是 Go 1.18 的第一個預覽版本,讓您可以試用、體驗並告訴我們您遇到的問題。Go 1.18 Beta 1 凝聚了 Google 整個 Go 團隊和全球 Go 貢獻者的大量工作,我們很高興聽到您的反饋。

Go 1.18 Beta 1 是第一個包含 Go 對使用引數化型別的泛型程式碼新支援的預覽版本。泛型是自 Go 1 釋出以來 Go 最重要的變化,也是我們有史以來最大的單次語言變更。對於任何大型的新功能,新使用者發現新 bug 是常見的,我們不認為泛型會例外;請務必謹慎對待。此外,某些特殊情況,例如特定型別的遞迴泛型型別,已推遲到將來的版本。儘管如此,我們知道一些早期採用者非常滿意,如果您有認為特別適合泛型的用例,我們希望您能嘗試一下。我們釋出了關於如何開始使用泛型的簡短教程,並在上週的 GopherCon 上做了一個演講。您甚至可以在Go dev branch 模式下的 Go playground上嘗試。

Go 1.18 Beta 1 添加了對編寫基於模糊測試的測試的內建支援,以自動查詢導致程式崩潰或返回無效結果的輸入。

Go 1.18 Beta 1 添加了一個新的“Go 工作空間模式”,該模式允許您同時使用多個 Go 模組,這對於大型專案是一個重要的用例。

Go 1.18 Beta 1 包含一個擴充套件的 go version -m 命令,該命令現在記錄構建詳細資訊,例如編譯器標誌。程式可以使用 debug.ReadBuildInfo 查詢自身的構建詳細資訊,並且現在可以使用新的 debug/buildinfo 包讀取其他二進位制檔案的構建詳細資訊。此功能旨在成為任何需要為 Go 二進位制檔案生成軟體物料清單 (SBOM) 的工具的基礎。

今年早些時候,Go 1.17 添加了一種新的基於暫存器的呼叫約定,以加快 Go 程式碼在 x86-64 系統上的速度。Go 1.18 Beta 1 將該功能擴充套件到 ARM64 和 PPC64,帶來了高達 20% 的速度提升。

感謝所有為這個 beta 版本做出貢獻的人,特別感謝 Google 團隊多年來為實現泛型而不懈努力。這是一條漫長的道路,我們對結果非常滿意,也希望您喜歡。

有關更多詳細資訊,請參閱完整的Go 1.18 釋出說明草稿

和往常一樣,特別是對於 beta 版本,如果您發現任何問題,請提交問題

希望您喜歡測試這個 beta 版本,也希望大家在 2021 年剩下的時間裡好好休息。節日快樂!

下一篇文章:1.18 的兩個新教程
上一篇文章:Go 的十二年
部落格索引