Go 編程語言發布 1.14

介紹 編程語言發布 轉到1.14,由谷歌在社區參與下開發,作為混合解決方案,結合了編譯語言的高性能 和腳本語言的優點 \uXNUMXb\uXNUMXb例如易於編寫代碼,開發速度,和錯誤保護。 項目代碼 分發者 在 BSD 許可證下。

Go 的語法基於 C 語言的熟悉元素,並藉鑑了 Python 語言。 語言相當簡潔,但代碼易於閱讀和理解。 Go 代碼被編譯成獨立的二進制可執行文件,無需使用虛擬機(分析、調試和其他運行時問題檢測子系統集成為 運行時組件),它可以讓您獲得與 C 語言程序相媲美的性能。

該項目最初的開發著眼於多線程編程和多核系統上的高效操作,包括提供在操作員級別實施的方法,用於組織並行計算和並行執行方法之間的交互。 該語言還提供內置保護,防止分配的內存塊溢出,並提供使用垃圾收集器的能力。

主要的 創新,在 Go 1.14 版本中引入:

  • “go”命令中的新模塊系統已準備好供一般使用,默認情況下啟用,並建議用於依賴管理而不是 GOPATH。 新的模塊系統具有集成的版本控制支持、包交付工具和改進的依賴管理。 有了模塊,開發人員不再局限於在 GOPATH 樹中工作,可以明確定義版本化的依賴項,並創建可重複的構建。
  • 添加 支持使用一組重疊的方法內聯接口。 來自內置接口的方法現在可以與現有接口中的方法具有相同的名稱和相同的簽名。 顯式聲明的方法像以前一樣保持唯一。
  • “延遲”表達式的性能得到了改進,現在使用它幾乎與直接調用延遲函數一樣快,這允許在性能敏感的代碼中使用延遲函數啟動。
  • 提供協程 (goroutine) 的異步搶占 - 不包含函數調用的循環現在可能不會導致調度程序死鎖或延遲垃圾收集的開始。
  • 內存頁面分配系統的效率得到了提高,在具有較大 GOMAXPROCS 值的配置中鎖衝突明顯減少。 結果,隨著大塊內存的並行密集分配,延遲減少了,吞吐量增加了。
  • 在運行 time.After、time.Tick、net.Conn.SetDeadline 函數中使用的內部計時器時,鎖已得到優化並減少了上下文切換的次數。
  • 在 go 命令中,如果根目錄中有 vendor 目錄,則默認啟用“-mod=vendor”標誌,該目錄旨在提供與特定供應商相關的外部依賴項。 添加了一個單獨的“-mod=mod”標誌以從模塊緩存而不是“vendor”目錄加載模塊。 如果 go.mod 文件是只讀的,如果沒有“vendor”頂級目錄,則默認提供“-mod=readonly”標誌。 添加了“-modfile=file”標誌以指定替代的 go.mod 文件,而不是模塊根目錄中的文件。
  • 添加了 GOINSECURE 環境變量,以便在設置時,go 命令不需要使用 HTTPS,並在直接加載模塊時跳過證書驗證。
  • 默認情況下啟用的標誌“-d=checkptr”已添加到編譯器,以檢查代碼是否符合安全使用 unsafe.Pointer 的規則。
  • 包括新包裝 哈希/映射哈希 使用非加密哈希函數為任意字節序列或字符串創建哈希表。
  • 在 Linux 上添加了對 64 位 RISC-V 的實驗性支持。
  • 在 64 位 ARM 系統上添加了對 FreeBSD 的支持。

來源: opennet.ru

添加評論