Go 1.18預計在數月內正式釋出,而現在官方先釋出了第一個Go 1.18 Beta測試版,這個版本有許多重要更新,但最受矚目的莫過於泛型,這個社群敲碗多年的功能,另外,Go 1.18還加入模糊測試,也提高ARM64的程式碼執行效能。

這個Go 1.18 Beta測試版是首個支援參數化類別泛型程式碼的Go版本,而泛型是Go第一個主要版本以來,最重要的變化,也是官方有史以來,所做過最大的單一語言變更,官方提到,對於任何大型新功能,存在錯誤是很常見的情況,因此開發者要小心謹慎使用。

對於特殊的使用案例,像是特定類型的遞迴泛型類別,則推延到之後的版本加入,官方希望開發者踴躍把泛型應用在各種用例,以協助開發團隊除錯。

這個版本還內建模糊測試支援,自動找尋導致程式崩潰的無效輸入。模糊測試是一種自動化測試,可以操縱程式的輸入來發現各種臭蟲,透過輸入半隨機的資料,能夠發現既有單元測試可能遺漏的程式碼覆蓋(Code Coverage),並且找出被忽略的邊緣案例,對於發現安全漏洞和臭蟲特別有用。

用戶還能夠在此Go 1.18測試版用到新的Go工作區模式,供開發者同時使用多個Go模組,該功能對於大型專案用例特別重要。新功能還包含經擴展的Go版本-m指令,該指令現在會記錄建置細節,像是編譯器旗標等,程式可以使用debug.ReadBuildInfo查詢自己的建置詳細資訊,並且使用新的debug/buildinfo套件,從其他二進位檔案中讀取建置詳細資訊。

另外,官方在Go 1.17中增加了一個暫存器呼叫約定更新,用來加速x86-64系統上的Go程式碼執行速度,而現在這項更新擴展到了ARM64和PPC64上,執行速度可以提高20%。

熱門新聞

Advertisement