2 月 19 日消息,Go 語言團(tuán)隊(duì)現(xiàn)已正式發(fā)布 1.26 版本,本次更新主要改進(jìn)泛型規(guī)則,同步提升運(yùn)行性能。
據(jù)介紹,Go 1.26 放寬了 new 內(nèi)建函數(shù)的使用限制。過去 new 的運(yùn)算元只能是類型,如今則允許直接使用表達(dá)式作為運(yùn)算元,以便在創(chuàng)建變量時同時指定初始值。這項(xiàng)改動對于使用指針表示可選字段的序列化數(shù)據(jù)結(jié)構(gòu)較為實(shí)用,可更直觀地完成初始化操作。
泛型系統(tǒng)方面,新版本解除泛型類型不得在自身類型參數(shù)列表中自我引用的限制,使類型約束能夠表達(dá)更復(fù)雜的遞歸接口與數(shù)據(jù)結(jié)構(gòu)需求,進(jìn)一步增強(qiáng)泛型的表達(dá)能力。
性能改進(jìn)方面,原本屬于實(shí)驗(yàn)性質(zhì)的 Green Tea 垃圾回收器在 1.26 中改為默認(rèn)啟用。官方表示,在跨語言互通機(jī)制 cgo 上也有明顯優(yōu)化,基礎(chǔ)額外開銷降低約 30%,有助于提升 Go 與 C 語言混合開發(fā)場景下的整體效率。同時,編譯器在更多情境下可將切片(slice)的底層存儲分配到棧上,從而減少堆分配次數(shù),降低內(nèi)存管理成本并改善運(yùn)行性能。
工具鏈方面,官方對 go fix 命令進(jìn)行了全面重構(gòu),改用 Go 分析框架為基礎(chǔ)實(shí)現(xiàn),同時新增二十多個現(xiàn)代化自動修正器,可在不改變程序行為的前提下自動應(yīng)用修正建議,幫助項(xiàng)目遷移至新語言特性或更新后的標(biāo)準(zhǔn)庫寫法。新版 go fix 還引入行內(nèi)分析器(Inline Analyzer),支持通過 //go:fix inline 注解標(biāo)記函數(shù),并嘗試在調(diào)用點(diǎn)進(jìn)行內(nèi)聯(lián)處理,協(xié)助代碼逐步現(xiàn)代化。
標(biāo)準(zhǔn)庫方面,Go 1.26 新增 crypto / hpke、crypto / mlkem / mlkemtest 與 testing / cryptotest 等套件,擴(kuò)展加密與測試能力。官方同時公布多項(xiàng)需顯式啟用的實(shí)驗(yàn)功能,包括用于單指令多數(shù)據(jù)運(yùn)算的 simd / archsimd 套件、支持安全擦除敏感臨時數(shù)據(jù)的 runtime / secret 套件等。Go 團(tuán)隊(duì)表示,這些實(shí)驗(yàn)特性有望在未來版本中轉(zhuǎn)為正式功能,開發(fā)者可提前試用并提供反饋。
















