Go 1.9 的開發(fā)團隊希望幾乎所有的 Go 程序都能像以前一樣運行,該版本的重點是在保持兼容性的前提下,提升性能,編譯和擴展大型代碼庫。正式版本2017年08月25日發(fā)布。
新特性和改進: (推薦學(xué)習:go)
垃圾收集器加速,更好的代碼和核心庫優(yōu)化將使程序運行速度更快一些。
math/bits 包,對操作 bits 進行了優(yōu)化。該包中的函數(shù)被編譯器視為內(nèi)聯(lián)函數(shù)來提高性能。
Go 1.9 編譯器支持并行編譯包中的函數(shù),利用多個處理器內(nèi)核。Go 1.9 保留以前版本的 go 命令支持并行編譯單獨的包。
默認情況下,并行編譯是打開的,但可以禁用。
為了可擴展性,Go 1.9 增加了對代碼修復(fù)的類型別名聲明(type-alias declaration)的支持。對 Go 語言的更改,類型別名支持逐行代碼修復(fù),同時支持在程序包之間移動類型。
它應(yīng)該在大規(guī)模重構(gòu)期間輔助代碼修復(fù),將引用舊包中的類型改為引用新包的類型,并可互操作。
基本上,類別別名的引入提供了一個過渡期,其中 API 可以從新的和舊的包中獲得,引用舊的和新的版本可以同時存在。
Go 1.9 增加了透明單調(diào)遞增時間(transparent monotonic time)支持,這使得在兩個時間值之間的計算持續(xù)時間總是安全的,即使是在時鐘調(diào)整的情況下。
Go 1.9 改進了測試能力,用新的 (T).Helper 和 (B).Helper 方法將調(diào)用函數(shù)標記為測試 helper 函數(shù)。
sync 包中的新 Map 類型,這是一個具有 amortized-constant-time 加載、存儲和刪除的并發(fā) Map。
多個 goroutines 可以安全并發(fā)的調(diào)用它。