Go 部落格
Go 1.2 已發布
我們很高兴宣布 Go 1.2 發布,這是 Go 編程語言的最新穩定版本。
二進位分發可能從 通常的地方下載,或者如果您偏好 從來源編譯,您應該使用 release
或 go1.2
標籤。
這次的新版本是在五月份發布 Go 1.1 後的差不多七個月,這個時間比 1.1 和 1.0 之間的 14 個月短很多。我們預期未來的主要版本之間的間隔會相當。
Go 1.2 包含一些次要語言變更,語言實作工具的一些改進,一些效能改善,以及標準函式庫的許多新增和(向下相容的)變更。
請閱讀 版本資訊 獲取所有詳細資訊,因為一些變更可能會影響現有(有臭蟲的)程式。下面是這個版本的重點。
新增 三索引片段語法,增加指定容量及長度的功能。這讓程式設計師可以傳遞只能存取底層陣列部分區域的片段值,以前這個技巧需要用到 unsafe 套件。
工具鏈一個主要新功能是計算並顯示 測試覆蓋率結果 的功能。請參閱 go test
和 cover 工具 文件以取得詳細資訊。本週稍晚會刊登一篇深入探討這個新功能的文章。
執行緒現在 搶佔式排程,排程器會不時在進入函式時呼叫。這可防止忙碌的執行緒讓同一執行緒上的其他執行緒變為飢餓狀態。
預設執行緒堆疊大小增加,應可提升某些程式的效能。(在效能關鍵區段,舊的大小常會引入昂貴的堆疊區段切換。)另一方面,堆疊大小 和 作業系統執行緒數目 的新限制應可避免發生錯誤行為的程式消耗機器上所有資源。(這些限制可使用 runtime/debug
套件 中的新函式進行調整。)
最後,在 標準程式庫的許多變動 中,重大變動包括:新的 encoding
套件、Printf
格式字串中的 索引引數 以及範本套件中的一些 方便的增益。
在這次版本中,Go Playground 已更新為 Go 1.2。這也影響了使用 Playground 的服務,例如 Go Tour 和這個部落格。這次更新還增加了在沙盒中使用執行緒、os
、net
和 unsafe
套件的能力,讓它更像真實的 Go 環境。
從提交錯誤回報的眾多使用者到承諾在核心變更中超過 1600 次變更的 116 位(!)貢獻者,感謝每一位協助讓這個版本問世的人:你們的協助對這個專案至關重要。謝謝你們!
這篇部落格文章是 Go Advent Calendar 的第一篇,這是由 Gopher Academy 於 12 月 1 日到 25 日每天刊登的一系列文章。
下一篇文章:封面故事
上篇文章:Go 中的文字正規化
部落格索引