Go 部落格
Go 1.24 釋出了!
今天 Go 團隊很高興釋出 Go 1.24,您可以訪問下載頁面獲取。
Go 1.24 在 Go 1.23 的基礎上帶來了許多改進。以下是一些值得注意的變化;完整列表請參閱釋出說明。
語言變化
Go 1.24 現在完全支援泛型類型別名:類型別名可以像定義型別一樣引數化。詳情請參見語言規範。
效能改進
執行時的一些效能改進使得在一系列代表性基準測試中的 CPU 開銷平均降低了 2-3%。這些改進包括基於 Swiss Tables 的新內建 map
實現、更高效的小物件記憶體分配,以及新的執行時內部互斥鎖實現。
工具改進
go
命令現在提供了一種機制來跟蹤模組的工具依賴項。使用go get -tool
可以將tool
指令新增到當前模組。使用go tool [tool name]
可以執行使用tool
指令宣告的工具。在釋出說明的go 命令部分閱讀更多詳情。go vet
子命令中新增的test
分析器可以報告測試包中測試、模糊測試、基準測試和示例宣告中的常見錯誤。在釋出說明的vet部分閱讀更多詳情。
標準庫新增內容
-
標準庫現在包含了一組新的機制,以方便符合 FIPS 140-3 標準。應用程式無需修改原始碼即可使用這些新機制來實現經批准的演算法。在釋出說明的FIPS 140-3 合規性部分閱讀更多詳情。除了 FIPS 140,之前位於 x/crypto 模組中的幾個包現在也可在標準庫中使用。
-
基準測試現在可以使用更快、更不易出錯的
testing.B.Loop
方法來執行基準測試迭代,例如使用for b.Loop() { ... }
替代涉及b.N
的典型迴圈結構(如for range b.N
)。在釋出說明的新基準測試函式部分閱讀更多詳情。 -
執行時提供了一種新的終結機制
runtime.AddCleanup
,它比runtime.SetFinalizer
更靈活、更高效且更不易出錯。在釋出說明的清理函式部分閱讀更多詳情。
改進的 WebAssembly 支援
Go 1.24 新增了 go:wasmexport
指令,用於 Go 程式向 WebAssembly 主機匯出函式,並支援將 Go 程式構建為 WASI reactor/library。在釋出說明的WebAssembly部分閱讀更多詳情。
請閱讀Go 1.24 釋出說明以獲取完整詳細資訊。別忘了關注後續的部落格文章,它們將更深入地探討這裡提到的一些主題!
感謝所有為本次釋出做出貢獻的人,包括編寫程式碼和文件、報告 bug、分享反饋以及測試釋出候選版本。你們的努力幫助確保 Go 1.24 儘可能穩定。一如既往,如果您發現任何問題,請提交問題。
盡情享受 Go 1.24 吧!
下一篇文章:使用 Go 構建可擴充套件的 Wasm 應用程式
上一篇文章:2024 年下半年 Go 開發者調查結果
部落格目錄