Go編程語言1.24發布

經過六個月的開發,由Google在社群參與下開發的Go程式語言已發布1.24版本。該語言結合了編譯型語言的高效能與腳本語言的易於編寫程式碼、開發速度快、錯誤保護等優點。此專案代碼根據 BSD 許可證分發。

Go 的語法是基於熟悉的 C 語言元素,並藉鑒了 Oberon 語言的一些內容。語言相當簡潔,但程式碼很容易閱讀和理解。 Go程式碼被編譯成單獨的二進位可執行文件,在本地執行,無需使用虛擬機器(分析、調試模組和其他運行時問題檢測子系統集成為運行時組件),這使得性能與C程式相當。

該專案最初開發時著眼於多線程編程和多核心系統上的高效運作。例如,在操作員級別,實作了用於組織並行計算和並行方法之間互動的工具。該語言還提供內建的緩衝區溢位保護和垃圾收集功能。

新版本的變化包括:

  • 提供對泛型類型別名的完全支援 - 類型別名可以參數化,就像新定義的類型一樣(定義類型別名時現在允許使用類型參數)。類型集合[P 可比較] = map[P]bool
  • 對運行時進行了最佳化,使得運行典型效能測試時處理器負載減少 2-3%。引入的最佳化包括:基於 Swiss Table 雜湊表的使用,內建了「map」操作的全新實作;增加放置小物體時的記憶體使用效率;運行時內建了新的互斥實作。
  • Go 模組的「go」命令現在具有追蹤可執行依賴項的機制(以 Go 語言編寫並在模組開發期間使用的輔助工具,例如 linters 或程式碼格式化實用程式)。實用程式在 go.mod 檔案中透過「tool」指令定義,建議使用「go get -tool」指令將其新增至目前模組(例如,「go get -tool golang.org/x/tools/cmd/stringer」)。為了執行“tool”指令中指定的實用程序,已新增“go tool utility_name”命令。
  • “go build”和“go install”命令中新增了“-json”選項,以JSON格式輸出。
  • 新增了 GOAUTH 環境變數來設定檢索受限存取模組所需的身份驗證參數。
  • 「go vet」命令有一個新的測試分析器,可以識別執行測試、模糊測試工具、效能實用程式和範例應用程式時常見的錯誤。
  • 標準庫包括經 FIPS 140-3 安全標準批准的加密演算法的實作。
  • 測試包中加入了B.Loop方法來執行效能測試。使用「for b.Loop() { … }」取代常規迴圈可以避免編譯器對迴圈體進行完全最佳化,並將測試設定和清理階段移出迴圈。
  • 新增了 os.Root 類型,允許將檔案系統的操作隔離到給定的目錄。
  • Runtime新增了runtime.AddCleanup機制,相較於runtime.SetFinalizer更有效率。
  • 新增了弱包,其中實現了不擁有物件、不會增加引用計數器並且不會阻止物件被釋放的弱指標。
  • 增加的軟體包:crypto/mlkem,實現了加密演算法 ML-KEM-768 和 ML-KEM-1024(Kyber),可以抵抗量子電腦的選擇; crypto/hkdf 實作基於 HMAC (RFC 5869) 的金鑰產生函數; crypto/pbkdf2 實作基於密碼的金鑰產生函數(PBKDF2,RFC 8018); crypto/sha3 採用 SHA-3 雜湊演算法的實作。
  • 新增了具有測試多執行緒功能的實驗性測試/synctest 套件。
  • 改進了 WebAssembly 支援。增加了以程式庫或 WASI(WebAssembly 系統介面)處理程序的形式建構 Go 應用程式的功能。實作了 go:wasmexport 指令來匯出可在 WebAssembly 中使用的函數。
  • objdump 實用程式已更新,以支援 LoongArch(GOARCH=loong64)、RISC-V(GOARCH=riscv64)和 S390X(GOARCH=s390x)架構的反彙編。

來源: opennet.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster