Google的Go語言團隊剛剛發布了Go 1.10的測試版,Go 1.10在編譯器工具鏈和性能上做出新改進,但并沒有語言上的實質性改變。
Google Go 1.10測試版的新功能
新版本在編譯器工具鏈和性能上做出了改進,但沒有語言上的實質性變化。預計將于2018年2月發布Go 1.10正式版本,目前Go 1.10在其測試版本中提供了以下關鍵功能:
* 在支持的體系結構中,改進了編譯器生成代碼的性能。
* 垃圾收集器中的加速、更高效的生成代碼和核心庫的優化使程序能運行得更快。
* 在二進制文件中,在改進的Dwarf調試信息中,可以記錄常量值。
* 在新版本中,linux / ppc64le端口需要使用cgo命令與程序進行外部鏈接。
* Go build命令根據源文件的內容、指定的構建標志和存儲包中的元數據來檢測過時的包。修改時間不再相關。
* Go install命令只安裝在命令行上列出的包和命令。想要強制安裝依賴項,開發人員需要使用go install - i標志。
* 放寬了方法表達式語法的限制,任何類型表達式都被允許作為接收方,從而與編譯器已經運行的方式相匹配。
* 測試結果可以通過gotest緩存。
* Unicode包已經從Unicode 9.0升級到10.0,增加了8518個字符,包括一個比特幣貨幣符號和56個表情符號。
Google Go 1.9的新功能
Google于2017年8月發布了Go 1.9版本。以下是新添功能和改進:
* 垃圾收集器中的加速、更高效的生成代碼和核心庫的優化使程序能運行得更快。
* math/bits包優化了bits的操縱。編譯器將包中的函數作為內在函數來提高性能。
* Go 1.9編譯器利用多個處理器內核,支持并行編譯包中的函數。 Go 1.9保留了之前版本的go命令對單獨軟件包的并行編譯支持。默認情況下并行編譯是打開的,但也可以設置禁用。
* 在可擴展性方面,Go 1.9添加了用于代碼修復的類型別名聲明的支持。對Go語言進行更改,類型別名支持在軟件包之間移動類型時逐步修復代碼。從本質上來說,類型別名的引入提供了一個過渡期,從新舊包中都可以使用API,從而引用舊版本和新版本的互操作性。
* Go 1.9增加了透明的單調時間支持。
* Go 1.9改進了測試助手功能,使用新的方法將調用函數標記為測試助手函數。
* 同步包中的新類型用作并發映射,具有非固定時間負載、存儲和刪除。因此,多個Go程序可以同時調用映射方法。