來了來了!Go1.16 重磅發(fā)布
剛剛,Go Team 發(fā)布了 Go1.16。2020 年,因為疫情,Go1.15 包含的特性比較少,但 Go1.16 特性比較多。在之前,Go 語言中文網(wǎng)已經(jīng)陸續(xù)發(fā)布了相關(guān)特性講解的文章(見文末參考文獻)。現(xiàn)在 Go1.16 終于如期發(fā)布了,再一起看看有哪些變動。
首先看看如何更新到 Go1.16。
如果你使用了 goup、gvm 這樣的工具,使用這些工具更新即可。 配置 GOPROXY 后,通過下圖的方式更新。

源碼下載安裝,Go 語言中文網(wǎng)已經(jīng)為你準(zhǔn)備好:https://studygolang.com/dl。
接著看看最重要的變化。
embed 包和 //go:embed 指令
新的 embed 包使用新的 //go:embed 指令,在編譯時嵌入的文件,并對其進行訪問。現(xiàn)在可以輕松地將支持?jǐn)?shù)據(jù)文件捆綁到 Go 程序中,從而使使用 Go 進行開發(fā)更加順暢。通過它,真正做到部署時只有一個二進制文件。
增加對 macOS ARM64 的支持
Go 1.16 還添加了 macOS ARM64 支持(也稱為 Apple 芯片:M1)。自 Apple 宣布其新的 arm64 架構(gòu)以來,Go 團隊一直在與他們緊密合作以確保 Go 得到完全支持;有關(guān)更多信息,請參考官方博客文章 “Go on ARM and Beyond”:https://docs.studygolang.com/blog/ports。
默認(rèn)啟用 Module
注意,Go 1.16 默認(rèn)使用 Go 模塊。根據(jù)官方 2020 Go 開發(fā)人員調(diào)查,現(xiàn)在有 96% 的 Go 開發(fā)人員已進行了更改。
io/fs 包
對文件系統(tǒng)進行抽象,一定程度上是配合 embed 進行的,否則應(yīng)該不會這么快跟著發(fā)布。不過這個包還是很不錯的。同時不建議使用 io/ioutil 了,因為其中的內(nèi)容移到 os 和 io 包了。
最后,還有許多其他改進和錯誤修復(fù),包括構(gòu)建速度提高了 25%,內(nèi)存使用量減少了 15%。有關(guān)更改的完整列表以及有關(guān)上述改進的更多信息,請參閱 Go 1.16 發(fā)行說明:https://golang.org/doc/go1.16。
推薦閱讀
