谷歌發布了新版編程語言 Go 的預覽版。 1.18 版增加了使用所謂的“參數化”類型進行“通用”編程的功能。
用他們自己的話說,這是自 Go 版本 1 發布以來編程語言最重要和最大的變化。泛型背後的想法是,它現在允許通過修改類型來表示函數和數據結構的功能。 這排除了通過將接口類型定義為抽像被帶到函數的實際數據的方式所允許的“通用性”。
谷歌表示,Go 開發人員應該意識到該功能無疑會導致新的錯誤。 因此,他們應該謹慎對待這些“泛型”。
Go 1.18 Beta 中的其他功能
除了上述功能外,新預覽版還內置支持編寫基於模糊測試的測試。 這些測試可以自動找到導致程序崩潰或返回無效答案的輸入。 Go 1.18 Beta 還提供了一個新的“Go 工作區模式”。 這允許程序員同時使用多個 Go 模塊。 據谷歌稱,這對於大型項目特別有用。
此外,1.18 Beta 版通過擴展的 go version -m 命令添加了功能。 此命令現在將詳細信息存儲為編譯器標誌。 程序現在可以使用命令 debug.ReadBuildInfo 查詢自己的構建詳細信息。
此外,自 Go 1.17 起可用的更多基於寄存器的調用約定已添加到預覽版中。 在以前的版本中,此功能僅適用於在 x86 和 x64 系統上加速 Go 代碼,現在它也適用於基於 ARM64 和 PPC64 的系統。 這應該可以提高 20% 的速度。