IT之家 8 月 10 日消息,谷歌于今天為編程語言 Go 發(fā)布了全新的 1.21 版本,該版本大部分變化集中在工具鏈、運行時和庫的實現(xiàn),谷歌此前表示,Go 語言將在 1.21 版本取消對舊版微軟 Windows 和蘋果 macOS 系統(tǒng)的支持。
IT之家附 Go 1.21 主要更新內容如下:
改進工具鏈
配置文件引導優(yōu)化 (PGO)功能正式進入穩(wěn)定階段(GA)。
在 1.20 中處于預覽階段的啟用配置文件引導優(yōu)化 (PGO)功能現(xiàn)已正式進入穩(wěn)定階段,PGO 的原理是“編譯器使用程序的運行時 profiling 信息,因此能夠生成更高質量的代碼,從而提高程序的性能”。如果主軟件包目錄中存在名為 default.pgo 的文件,go 命令將使用該 default.pgo 文件來啟用 PGO 構建。
語言變更
添加新的內置函數(shù):
min, max, clear
對泛型函數(shù)的類型推斷進行了多項改進,包括“擴展和解釋清楚規(guī)范”中類型推斷的描述。
在未來版本中,開發(fā)團隊計劃解決 Go 編程中最常見的“循環(huán)變量捕獲”問題,開發(fā)團隊目前已經在 Go 1.21 中提供了“預覽版”解決方案,目前用戶可以使用“環(huán)境變量”在代碼中啟用該功能。
添加新的標準庫
log / slog 包:用于結構化日志記;
slices 包:增用于對任何元素類型的切片進行常見操作,這個包比 sort 包更快、更符合人體工程學;
maps 包:用于對任何類型 key-value 進行常見操作;
cmp 包:用于比較有序值 (ordered values)。
優(yōu)化性能
Go 編譯器本身已經在 1.21 就 PGO 進行了重建,因此當下構建 Go 程序的速度提高了 2-4%,不過官方表示,具體的優(yōu)化效率將取決于主機架構。
支持 WASI
Go 1.21 已實驗性支持 WebAssembly System Interface (WASI),Preview 1。
為了方便編寫更通用的 WebAssembly (WASM)代碼,編譯器還支持從 WASM 主機導入函數(shù)的新指令:
go:wasmimport
廣告聲明:文內含有的對外跳轉鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結果僅供參考,IT之家所有文章均包含本聲明。