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