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