今天小編分享的科技經驗:谷歌發布編程語言Go 1.21:取消舊版 Windows 和 macOS 的支持,歡迎閱讀。
IT 之家 8 月 10 日消息,谷歌于今天為編程語言 Go 發布了全新的 1.21 版本,該版本大部分變化集中在工具鏈、運行時和庫的實現,谷歌此前表示,Go 語言将在 1.21 版本取消對舊版微軟 Windows 和蘋果 macOS 系統的支持。
▲ 谷歌編程語言 Go 1.21 版本發布日志
IT 之家附 Go 1.21 主要更新内容如下:
改進工具鏈
配置檔案引導優化 (PGO)功能正式進入穩定階段(GA)。
在 1.20 中處于預覽階段的啟用配置檔案引導優化 (PGO)功能現已正式進入穩定階段,PGO 的原理是 " 編譯器使用程式的運行時 profiling 信息,因此能夠生成更高質量的代碼,從而提高程式的性能 "。如果主軟體包目錄中存在名為 default.pgo 的檔案,go 命令将使用該 default.pgo 檔案來啟用 PGO 構建。
語言變更
添加新的内置函數:
min, max, clear
對泛型函數的類型推斷進行了多項改進,包括 " 擴展和解釋清楚規範 " 中類型推斷的描述。
在未來版本中,開發團隊計劃解決 Go 編程中最常見的 " 循環變量捕獲 " 問題,開發團隊目前已經在 Go 1.21 中提供了 " 預覽版 " 解決方案,目前用戶可以使用 " 環境變量 " 在代碼中啟用該功能。
添加新的标準庫
log / slog 包:用于結構化日志記;
slices 包:增用于對任何元素類型的切片進行常見操作,這個包比 sort 包更快、更符合人體工程學;
maps 包:用于對任何類型 key-value 進行常見操作;
cmp 包:用于比較有序值 (ordered values)。
優化性能
Go 編譯器本身已經在 1.21 就 PGO 進行了重建,因此當下構建 Go 程式的速度提高了 2-4%,不過官方表示,具體的優化效率将取決于主機架構。
支持 WASI
Go 1.21 已實驗性支持 WebAssembly System Interface (WASI),Preview 1。
為了方便編寫更通用的 WebAssembly (WASM)代碼,編譯器還支持從 WASM 主機導入函數的新指令:
go:wasmimport