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