Go團隊發布了最新版本1.17,這個版本改進了編譯器,在傳遞函式參數和結果,使用了新的方法,而這項改進使得Go程式的效能得以提高約5%,amd64平臺的二進位檔案大小減少2%,官方提到,未來版本還會支援更多的平臺。另外,Go 1.17還增加對Windows上64位元Arm架構的支援,因此Go程式可以在更多的裝置上原生運作。

這個新版本使用了修整過後的模組圖(Module Graphs),在Go 1.17或是更高的版本,開發者於go.mod檔案中指定模組,則模組圖將會僅包含其他Go 1.17模組的直接相依項目,而非完整的遞移相依(Transitive Dependency)項目,這將有助於避免下載或是讀取go.mod檔案,取用不相關的相依項目,可有效節省日常開發時間。

在語言功能上,Go 1.17有3個小改動,前兩個是unsafe套件中的新函式,能使程式更容易遵循unsafe.Pointer規則,分別是unsafe.Add,允許安全地指針運算,還有unsafe.Slice,則能夠安全地將指針轉換成為切片(Slice)。第3個變化是語言類型轉換規則的擴充,允許切片轉換為陣列指針,不過這項操作的前提是,切片在執行時至少要和陣列一樣大。

熱門新聞

Advertisement