精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

谷歌官方正式發布了Go1.20穩定版「八千字詳解」

開發 前端
Go 1.20 對編譯器生成的符號使用go:?andtype:?前綴,而不是go.?and type.?。這避免了名稱以 . 開頭的用戶包的混淆go.?。該debug/gosym軟件包理解使用 Go 1.20 及更新版本構建的二進制文件的新命名約定。

Go1.20 變化不少,該版本依然保持 Go1 兼容性,我們可以升級到 Go1.20,而不需要做任何代碼改動。?

圖片

可以使用你任何喜歡的方式升級:

比如:go install golang.org/dl/go1.20@latest

具體的可以參考官網教程:https://go.dev/doc/go1.20

Go 1.20 簡介

最新的 Go 版本 1.20 在Go 1.19 發布六個月后發布。它的大部分更改都在工具鏈、運行時和庫的實現中。

一如既往,該版本保持了 Go 1的兼容性承諾。我們期望幾乎所有的 Go 程序都能像以前一樣繼續編譯和運行。

語言的變化

Go 1.20 包括對語言的四個更改。

Go 1.17 添加了從切片到數組指針的轉換。Go 1.20 擴展了它以允許從切片到數組的轉換:給定一個切片x,[4]byte(x)?現在可以寫成*(*[4]byte)(x).

該unsafe?包定義了三個新函數SliceData、String和StringData?。與 Go 1.17 一起Slice,這些函數現在提供了構建和解構切片和字符串值的完整能力,而不依賴于它們的確切表示。

該規范現在定義結構值一次比較一個字段,按照它們在結構類型定義中出現的順序考慮字段,并在第一個不匹配時停止。之前可以閱讀規范,就好像所有字段都需要比較第一個不匹配之外的字段。類似地,該規范現在定義數組值按遞增索引順序一次比較一個元素。在這兩種情況下,差異會影響某些比較是否必須恐慌。現有程序沒有改變:新的規范措辭描述了實現一直所做的事情。

可比較的類型(例如普通接口)現在可以滿足comparable?約束,即使類型參數不是嚴格可比較的(比較可能會在運行時崩潰)。這使得實例化受約束的類型參數comparable (例如,用戶定義的通用映射鍵的類型參數)與非嚴格可比較的類型參數(例如接口類型或包含接口類型的復合類型)成為可能。

端口

Windows

Go 1.20 是將在 Windows 7、8、Server 2008 和 Server 2012 的任何版本上運行的最后一個版本。Go 1.21 將至少需要 Windows 10 或 Server 2016。

Darwin and iOS

Go 1.20 是將在 macOS 10.13 High Sierra 或 10.14 Mojave 上運行的最后一個版本。Go 1.21 將需要 macOS 10.15 Catalina 或更高版本。

FreeBSD/RISC-V

GOOS=freebsd?Go 1.20 在 RISC-V ( , GOARCH=riscv64) 上添加了對 FreeBSD 的實驗性支持。

工具

Go command

該目錄$GOROOT/pkg?不再存儲標準庫的預編譯包存檔: go install?不再寫入它們,go?構建不再檢查它們,Go 發行版不再運送它們。相反,標準庫中的包是根據需要構建的,并緩存在構建緩存中,就像外部的包一樣GOROOT。此更改減少了 Go 發行版的大小,還避免了使用 cgo 的包的 C 工具鏈傾斜。

實施go test -json? 已得到改進,使其更加健壯。運行的程序go test -json? 不需要任何更新。直接調用的程序現在應該使用 (例如, 或)而不是普通的來go tool test2json? 運行測試二進制文件。 -v=test2json``go test -v=test2json``./pkg.test -test.v=test2json``-v

一個相關的變化是 在每個測試程序開始執行時go test -json? 添加了一個Action?設置為的事件。start?當使用命令運行多個測試時go,這些啟動事件保證以與命令行中指定的包相同的順序發出。

該go?命令現在定義了體系結構功能構建標簽,例如amd64.v2?,以允許根據特定體系結構功能的存在或不存在來選擇包實現文件。詳情請見go help buildconstraint。

go?子命令現在接受 在執行命令之前 將-C <dir>?目錄更改為 <dir>,這對于需要在多個不同模塊中執行命令的腳本可能很有用。

go build?andgo test? 命令不再接受-i標志,該標志自 Go 1.16 以來已 被棄用。

該go generate?命令現在接受 -skip <pattern>?跳過//go:generate?匹配的指令<pattern>。

該go test?命令現在接受 -skip <pattern>?跳過測試、子測試或匹配的示例<pattern>。

當主模塊位于 中GOPATH/src?時, go install?不再為非main?包安裝庫GOPATH/pkg?,并且go list?不再報告Target? 此類包的字段。(在模塊模式下,已編譯的包僅存儲在 構建緩存中 ,但一個錯誤導致GOPATH安裝目標意外地保持有效。)

go build和go install?其他與構建相關的命令現在支持-pgo?啟用配置文件引導優化的標志,這在下面的 編譯器部分中有更詳細的描述。該-pgo?標志指定配置文件的文件路徑。指定-pgo=auto?會導致go?命令搜索default.pgo?在主包目錄中命名的文件,如果存在則使用它。此模式目前需要在命令行上指定一個主包,但我們計劃在未來的版本中取消此限制。指定-pgo=off關閉配置文件引導的優化。

go build和go install?其他與構建相關的命令現在支持-cover 使用代碼覆蓋檢測構建指定目標的標志。這在下面的封面部分 中有更詳細的描述 。

go version

該go version -m?命令現在支持讀取更多類型的 Go 二進制文件,最值得注意的是,使用構建的 Windows DLLgo build -buildmode=c-shared 和沒有執行權限的 Linux 二進制文件。

CGO

該go?命令現在默認在沒有 C 工具鏈的系統上禁用cgo?。更具體地說,當CGO_ENABLED?環境變量未設置時,環境變量未設置,并且在路徑中找不到 CC?默認的 C 編譯器(通常是clang?或),默認為. 與往常一樣,您可以通過顯式設置來覆蓋默認值。 gcc``CGO_ENABLED``0``CGO_ENABLED

默認更改最重要的影響是,當 Go 安裝在沒有 C 編譯器的系統上時,它現在將使用純 Go 構建標準庫中使用 cgo 的包,而不是使用預分發的包存檔(有已被刪除,如上所述)或嘗試使用 cgo 并失敗。這使得 Go 在一些最小的容器環境以及 macOS 上工作得更好,在 macOS 上,自 Go 1.16 以來,預分發的包存檔還沒有用于基于 cgo 的包。

標準庫中使用 cgo 的包有net?、 os/user?和 plugin?。在 macOS 上,net和os/user?包已被重寫為不使用 cgo:相同的代碼現在用于 cgo 和非 cgo 構建以及交叉編譯的構建。在 Windows 上,net和os/user包從未使用過 cgo。在其他系統上,禁用 cgo 的構建將使用這些包的純 Go 版本。

在 macOS 上,競態檢測器已被重寫為不使用 cgo:啟用競態檢測器的程序可以在沒有 Xcode 的情況下構建和運行。在 Linux 和其他 Unix 系統以及 Windows 上,需要主機 C 工具鏈才能使用競爭檢測器。

Cover

Go 1.20 支持收集程序(應用程序和集成測試)的代碼覆蓋率配置文件,而不僅僅是單元測試。

要收集程序的覆蓋率數據,請使用go build的-cover?標志構建它,然后運行生成的二進制文件,并將環境變量GOCOVERDIR設置為覆蓋率配置文件的輸出目錄。有關如何開始的更多信息,請參閱 “集成測試覆蓋率”登錄頁面。詳細設計和實現見 提案。

Vet

改進了嵌套函數對循環變量捕獲的檢測

該工具現在報告 在子測試函數體內vet?調用后對循環變量的引用。T.Parallel()此類引用可能會觀察來自不同迭代的變量值(通常會導致測試用例被跳過)或由于不同步的并發訪問而導致的無效狀態。

該工具還在更多地方檢測引用錯誤。以前它只會考慮循環體的最后一條語句,但現在它遞歸地檢查 if、switch 和 select 語句中的最后一條語句。

針對錯誤時間格式的新診斷

vet 工具現在報告使用時間格式 2006-02-01 (yyyy-dd-mm)Time.Format?和 time.Parse。此格式未出現在通用日期標準中,但在嘗試使用 ISO 8601 日期格式 (yyyy-mm-dd) 時經常被錯誤使用。

Runtime

一些垃圾收集器的內部數據結構被重新組織,以提高空間和 CPU 效率。此更改減少了內存開銷并將整體 CPU 性能提高了 2%。

在某些情況下,垃圾收集器在 goroutine 協助方面表現得不太不穩定。

Go 1.20 添加了一個runtime/coverage?包含 API 的新包,用于在運行時從長時間運行和/或不通過os.Exit().

編譯器 Compiler

Go 1.20 添加了對配置文件引導優化 (PGO) 的預覽支持。PGO 使工具鏈能夠根據運行時配置文件信息執行特定于應用程序和工作負載的優化。目前,編譯器支持 pprof CPU 配置文件,可以通過常規方式收集,例如runtime/pprof?或 net/http/pprof?包。要啟用 PGO,請通過 -pgo?標志將 pprof 配置文件的路徑傳遞給go build,如上所述。Go 1.20 使用 PGO 更積極地在熱調用站點內聯函數。一組具有代表性的 Go 程序的基準顯示啟用配置文件引導的內聯優化可將性能提高約 3–4%。請參閱PGO 用戶指南獲取詳細文檔。我們計劃在未來的版本中添加更多配置文件引導的優化。請注意,配置文件引導的優化是一個預覽,因此請謹慎使用。

Go 1.20 編譯器升級了它的前端以使用一種新的方式來處理編譯器的內部數據,它修復了幾個泛型類型問題并在泛型函數和方法中啟用了類型聲明。

編譯器現在 默認拒絕帶有編譯器錯誤的匿名接口循環。這些源于嵌入式接口的巧妙使用, 并且一直存在細微的正確性問題,但我們沒有證據表明它們確實在實踐中使用過。假設沒有用戶報告受到此更改的不利影響,我們計劃更新 Go 1.22 的語言規范以正式禁止它們,以便工具作者也可以停止支持它們。

Go 1.18 和 1.19 的構建速度有所下降,這主要是由于增加了對泛型的支持和后續工作。Go 1.20 將構建速度提高了 10%,使其與 Go 1.17 保持一致。相對于 Go 1.19,生成的代碼性能也普遍略有提升。

鏈接器 Linker

glibc? 在 Linux 上,鏈接器現在為鏈接時或musl在鏈接時 選擇動態解釋器。

在 Windows 上,Go 鏈接器現在支持現代的基于 LLVM 的 C 工具鏈。

Go 1.20 對編譯器生成的符號使用go:?andtype:?前綴,而不是go.?and type.?。這避免了名稱以 . 開頭的用戶包的混淆go.?。該debug/gosym軟件包理解使用 Go 1.20 及更新版本構建的二進制文件的新命名約定。

引導程序 Bootstrap

當從源代碼構建 Go 版本GOROOT_BOOTSTRAP?且未設置時,以前版本的 Go 在目錄中查找 Go 1.4 或更高版本的引導工具鏈 $HOME/go1.4(%HOMEDRIVE%%HOMEPATH%\go1.4?在 Windows 上)。Go 1.18 和 Go 1.19在回退到 之前首先尋找$HOME/go1.17?或,以預期在引導 Go 1.20 時需要使用 Go 1.17。Go 1.20 確實需要 Go 1.17 版本來進行引導,但我們意識到我們應該采用引導工具鏈的最新點版本,因此它需要 Go 1.17.13。Go 1.20 尋找或 回退到之前$HOME/sdk/go1.17``$HOME/go1.4``$HOME/go1.17.13``$HOME/sdk/go1.17.13``$HOME/go1.4 (以支持硬編碼路徑 $HOME/go1.4 但在那里安裝了更新的 Go 工具鏈的系統)。未來,我們計劃大約每年將引導工具鏈向前移動一次,特別是我們預計 Go 1.22 將需要 Go 1.20 的最終版本來進行引導。

核心庫

New crypto/ecdh package

Go 1.20 添加了一個新crypto/ecdh包,以明確支持 NIST 曲線和 Curve25519 上的橢圓曲線 Diffie-Hellman 密鑰交換。

程序應該為 ECDH 使用crypto/ecdh?而不是低級功能 crypto/elliptic,而為更高級的用例使用第三方模塊。

包裝多個錯誤

Go 1.20 擴展了對錯誤包裝的支持,允許一個錯誤包裝多個其他錯誤。

一個錯誤e?可以通過提供一個Unwrap?返回[]error.

和函數已更新以檢查多重包裝錯誤 errors.Is?。 errors.As

該fmt.Errorf?函數現在支持多次出現%w格式動詞,這將導致它返回一個包含所有這些錯誤操作數的錯誤。

新函數errors.Join 返回一個包含錯誤列表的錯誤。

HTTP 響應控制器

新 "net/http".ResponseController? 類型提供對接口未處理的擴展的按請求功能的 "net/http".ResponseWriter訪問。

以前,我們通過定義ResponseWriter?可以實現的可選接口(例如 Flusher. 這些接口不可發現且使用起來很笨拙。

該ResponseController?類型提供了一種更清晰、更易于發現的方式來添加每個處理程序的控件。Go 1.20 中還添加了兩個這樣的控件是 SetReadDeadline和SetWriteDeadline,它們允許設置每個請求的讀寫截止日期。例如:

func RequestHandler(w ResponseWriter, r *Request) {
rc := http.NewResponseController(w)
rc.SetWriteDeadline(time.Time{}) // 發送大響應時禁用 Server.WriteTimeout
io.Copy(w, 大數據)
}

新的 ReverseProxy 重寫hook

httputil.ReverseProxy? 轉發代理包括一個新的 鉤子Rewrite? 函數,取代了以前的Director鉤子。

該Rewrite?掛鉤接受一個 ProxyRequest?參數,該參數包括代理接收的入站請求和它將發送的出站請求。與Director?僅對出站請求進行操作的掛鉤不同,這允許Rewrite掛鉤避免某些情況,在這些情況下,惡意入站請求可能導致掛鉤添加的標頭在轉發之前被刪除。請參閱問題 #50580。

該ProxyRequest.SetURL? 方法將出站請求路由到提供的目的地并取代該NewSingleHostReverseProxy?功能。與 不同的NewSingleHostReverseProxy?是,SetURL? 還設置了Host出站請求的標頭。

該 ProxyRequest.SetXForwarded? 方法設置出站請求的X-Forwarded-For、X-Forwarded-Host和X-Forwarded-Proto?標頭。使用 aRewrite時,默認情況下不會添加這些標頭。

Rewrite使用這些功能的掛鉤 示例是:

proxyHandler := &httputil.ReverseProxy{
重寫:func(r *httputil.ProxyRequest) {
r.SetURL(outboundURL) // 轉發請求到 outboundURL。
r.SetXForwarded() // 設置 X-Forwarded-* 標頭。
r.Out.Header.Set("X-Additional-Header", "代理設置的header")
},
}

ReverseProxyUser-Agent當傳入請求沒有時, 不再向轉發的請求添加標頭。

library的小改動

與往常一樣,庫有各種小的變化和更新,考慮到 Go 1的兼容性承諾 。還有各種性能提升,這里就不一一列舉了。

  • archive/tar設置GODEBUG=tarinsecurepath=0環境變量后, Reader.Next方法現在將返回ErrInsecurePath 文件名為絕對路徑的條目的錯誤,指的是當前目錄之外的位置,包含無效字符,或者(在 Windows 上)是保留名稱,例如NUL. Go 的未來版本可能會默認禁用不安全的路徑。
  • archive/zip設置GODEBUG=zipinsecurepath=0環境變量后, NewReader現在將 ErrInsecurePath 在打開包含絕對路徑的任何文件名的存檔時返回錯誤,指的是當前目錄之外的位置,包含無效字符,或者(在 Windows 上)是保留名稱,例如作為NUL。Go 的未來版本可能會默認禁用不安全的路徑。從包含文件數據的目錄文件中讀取現在將返回錯誤。zip 規范不允許目錄文件包含文件數據,因此此更改僅影響從無效存檔中讀取。
  • bytes新的 CutPrefixand CutSuffix函數與 and 類似TrimPrefix ,TrimSuffix 但也報告字符串是否被修剪。新Clone函數分配字節切片的副本。
  • context新WithCancelCause函數提供了一種方法來取消具有給定錯誤的上下文。可以通過調用新Cause函數來檢索該錯誤。
  • crypto/ecdsa使用支持的曲線時,所有操作現在都在恒定時間內實現。這導致 CPU 時間增加 5% 到 30%,主要影響 P-384 和 P-521。新PrivateKey.ECDH方法將 an 轉換ecdsa.PrivateKey為ecdh.PrivateKey.
  • crypto/ed25519該PrivateKey.Sign方法和 VerifyWithOptions函數現在支持使用 Ed25519ph 對預散列消息進行簽名,由 Options.HashFunc 返回 crypto.SHA512. 他們現在還支持帶有上下文的 Ed25519ctx 和 Ed25519ph,通過設置新 Options.Context 字段來指示。
  • crypto/RSA新字段OAEPOptions.MGFHash 允許為 OAEP 解密單獨配置 MGF1 哈希。crypto/rsa 現在使用一個新的、更安全的、恒定時間的后端。這會導致解密操作的 CPU 運行時間增加大約 15%(amd64 上的 RSA-2048)和 45%(arm64 上的 RSA-4096),在 32 位架構上更多。加密操作比以前慢了大約 20 倍(但仍然比解密快 5-10 倍)。性能有望在未來的版本中得到改善。程序不得修改或手動生成 的字段 PrecomputedValues。
  • crypto/subtle新函數XORBytes 將兩個字節片異或在一起。
  • crypto/TLS已解析的證書現在在所有主動使用該證書的客戶端之間共享。在與共享其證書鏈的任何部分的服務器或服務器集合建立許多并發連接的程序中,內存節省可能非常重要。對于由于證書驗證失敗而導致的握手失敗,TLS 客戶端和服務器現在返回一個新類型的錯誤 CertificateVerificationError,其中包括提供的證書。
  • crypto/x509ParsePKCS8PrivateKey? 現在 MarshalPKCS8PrivateKey 支持類型的鍵*crypto/ecdh.PrivateKey。 ParsePKIXPublicKey 現在 MarshalPKIXPublicKey 支持類型的鍵*crypto/ecdh.PublicKey。解析 NIST 曲線鍵仍然返回類型 *ecdsa.PublicKey和的值*ecdsa.PrivateKey。使用他們的新ECDH方法轉換為crypto/ecdh類型。新SetFallbackRoots 功能允許程序定義一組備用根證書,以防操作系統驗證程序或標準平臺根包在運行時不可用。它最常與新包golang.org/x/crypto/x509roots/fallback一起使用,它將提供最新的根包。
  • debug/elf嘗試使用現在返回 的讀取器或讀取器讀取SHT_NOBITS部分 會 返回錯誤。 Section.DataSection.Open定義了其他R_LARCH_*常量以用于 LoongArch 系統。定義了其他R_PPC64_*常量以用于 PPC64 ELFv2 重定位。的常量值R_PPC64_SECTOFF_LO_DS已從 61 更正為 62。
  • debug/gosym由于Go 的符號命名約定發生了變化,處理 Go 二進制文件的工具應該使用 Go 1.20 的debug/gosym包來透明地處理新舊二進制文件。
  • debug/PE定義了其他IMAGE_FILE_MACHINE_RISCV*常量以用于 RISC-V 系統。
  • 編碼/二進制ReadVarint?和 ReadUvarint 函數現在將 在io.ErrUnexpectedEOF讀取部分值后返回,而不是io.EOF.
  • encoding/xml新Encoder.Close方法可用于在完成編碼時檢查未閉合的元素。解碼器現在拒絕具有多個冒號的元素和屬性名稱,例如<a:b:c>,以及解析為空字符串的命名空間,例如xmlns:a="".解碼器現在拒絕在開始和結束標記中使用不同命名空間前綴的元素,即使這些前綴都表示相同的命名空間。
  • 錯誤新Join函數返回一個包含錯誤列表的錯誤。
  • 調速器該Errorf函數支持格式動詞的多次出現%w,返回一個錯誤,該錯誤解包到所有參數的列表%w。新FormatString函數恢復對應于 a 的格式化指令State,這在Formatter. 實施。
  • go/ast新RangeStmt.Range字段記錄range關鍵字在范圍語句中的位置。新增的File.FileStart andFile.FileEnd字段記錄了整個源文件的開始和結束位置。
  • go/token令牌新FileSet.RemoveFile方法從FileSet. 長時間運行的程序可以使用它來釋放與它們不再需要的文件關聯的內存。
  • go/types新Satisfies函數報告類型是否滿足約束。 此更改與區分滿足約束和實現接口 的新語言語義一致。
  • IO新OffsetWriter包裝底層 WriterAt 并提供Seek、Write和WriteAt方法,將其有效文件偏移位置調整固定量。
  • 讀寫器新錯誤 立即但成功 SkipAll 終止。WalkDir
  • math/bigmath/big包 的廣泛范圍和依賴于輸入的時序使其不適合實現密碼學。標準庫中的加密包不再 對攻擊者控制的輸入調用非平凡的Int方法。將來,確定 math/big 中的錯誤是否被視為安全漏洞將取決于它對標準庫的更廣泛影響。
  • math/randmath/rand包 現在自動為全局隨機數生成器(由 和 等頂級函數使用Float64)Int生成一個隨機值,并且頂級Seed函數已被棄用。需要可重現的隨機數序列的程序應該更喜歡分配自己的隨機源,使用rand.New(rand.NewSource(seed)).需要較早一致的全局播種行為的程序可以 GODEBUG=randautoseed=0在其環境中設置。頂層Read函數已被棄用。幾乎在所有情況下, crypto/rand.Read都是更合適的。
  • mime該ParseMediaType函數現在允許重復參數名稱,只要名稱的值相同即可。
  • mime/multipart該Reader類型的方法現在包裝了底層返回的錯誤io.Reader。
  • net該函數現在在記錄存在時LookupCNAME 始終如一地返回記錄的內容。CNAME以前在 Unix 系統上,當使用純 Go 解析器時,如果記錄引用的名稱沒有、 或記錄,LookupCNAME則會返回錯誤。此更改會修改 以匹配 Windows 上的先前行為,從而允許在存在時成功 。 CNAME``A``AAAA``CNAME``LookupCNAME``LookupCNAME``CNAMEInterface.Flags?現在包括新標志FlagRunning,表示一個可操作的活動接口。管理配置但不活動的接口(例如,因為未連接網絡電纜)將FlagUp設置但不FlagRunning。新Dialer.ControlContext字段包含一個類似于現有Dialer.Control掛鉤的回調函數,它另外接受撥號上下文作為參數。 當不為零 Control時被忽略。ControlContextGo DNS 解析器識別trust-ad解析器選項。當在options trust-ad中設置時resolv.conf,Go 解析器將在 DNS 查詢中設置 AD 位。解析器不在響應中使用 AD 位。DNS 解析將檢測更改/etc/nsswitch.conf 并在更改時重新加載文件。最多每五秒進行一次檢查,與之前對/etc/hosts 和的處理相匹配/etc/resolv.conf。
  • 網絡/http該ResponseWriter.WriteHeader功能現在支持發送 1xx狀態代碼。新的Server.DisableGeneralOptionsHandler配置設置允許禁用默認OPTIONS *處理程序。當從代理接收到請求的 HTTP 響應Transport.OnProxyConnectResponse時,將調用 新掛鉤。 Transport``CONNECTHTTP 服務器現在接受包含正文的 HEAD 請求,而不是將它們視為無效而拒絕。函數返回的 HTTP/2 流錯誤net/http可能會轉換為golang.org/x/net/http2.StreamError使用 errors.As.前導和尾隨空格從 cookie 名稱中刪除,而不是被拒絕為無效。例如,“name =value”的 cookie 設置現在被接受為設置 cookie“name”。
  • net/netipnew IPv6LinkLocalAllRouters andIPv6Loopback函數net/netip等同于 net.IPv6loopbackand net.IPv6linklocalallrouters。
  • pkg在 Windows 上,該名稱NUL不再被視為 和 中的 Mkdir特例 Stat。在 Windows 上,File.Stat 當文件是目錄時,現在使用文件句柄檢索屬性。以前它會使用傳遞給的路徑 Open,如果文件已被移動或替換,則該路徑可能不再是文件句柄所代表的文件。此更改修改Open為沒有訪問權限的打開目錄 FILE_SHARE_DELETE,這與常規文件的行為相匹配。在 Windows 上,File.Seek現在支持查找到目錄的開頭。
  • 操作系統/執行新Cmd字段 Cancel并 WaitDelay 指定Cmd當其關聯 Context被取消或其進程退出時 I/O 管道仍由子進程保持打開狀態時的行為。
  • 路徑/文件路徑新錯誤 立即但成功 SkipAll 終止。Walk新IsLocal函數報告路徑是否是目錄的詞法本地路徑。例如,如果IsLocal(p)is true,Open(p)則將引用一個文件,該文件在詞法上位于以當前目錄為根的子樹中。
  • 反射 reflect新的Value.Comparableand Value.Equal方法可用于比較兩個Values 是否相等。 Comparable報告Equal給定Value接收器的操作是否有效。新Value.Grow方法擴展了一個切片以保證其他n元素的空間。新Value.SetZero方法將一個值設置為其類型的零值。Go 1.18 引入Value.SetIterKey 和Value.SetIterValue方法。這些是優化:v.SetIterKey(it)意味著等同于v.Set(it.Key()). 這些實現錯誤地忽略了對未優化表單中存在的未導出字段的使用檢查。Go 1.20 更正了這些方法以包括未導出的字段檢查。
  • 正則表達式Go 1.19.2 和 Go 1.18.7 包含對正則表達式解析器的安全修復,使其拒絕會消耗過多內存的非常大的表達式。因為 Go 補丁版本沒有引入新的 API,所以syntax.ErrInternalError在這種情況下返回的解析器。Go 1.20 添加了一個更具體的錯誤,syntax.ErrLarge解析器現在返回該錯誤。
  • 運行時/cgoGo 1.20 添加了新的Incomplete標記類型。cgo 生成的代碼將用于cgo.Incomplete標記不完整的 C 類型。
  • 運行時/指標Go 1.20 添加了新的支持指標,包括當前GOMAXPROCS設置 ( /sched/gomaxprocs:threads)、執行的 cgo 調用次數 ( /cgo/go-to-c-calls:calls)、互斥塊總時間 ( /sync/mutex/wait/total:seconds) 以及垃圾收集中花費的各種時間度量。基于時間的直方圖指標現在不太精確,但占用的內存少得多。
  • 運行時間/pprof互斥配置文件樣本現在已預先縮放,解決了如果采樣率在執行期間發生變化,舊的互斥配置文件樣本將被錯誤縮放的問題。在 Windows 上收集的配置文件現在包含內存映射信息,可修復與位置無關的二進制文件的符號化問題。
  • 運行時/跟蹤垃圾收集器的后臺清掃器現在產生的頻率降低了,從而導致執行跟蹤中的無關事件大大減少。
  • 字符串新的 CutPrefixand CutSuffix函數與 and 類似TrimPrefix ,TrimSuffix 但也報告字符串是否被修剪。
  • 同步新Map方法Swap、 CompareAndSwap和 CompareAndDelete 允許以原子方式更新現有映射條目。
  • 系統調用在 FreeBSD 上,FreeBSD 11 及更早版本所需的兼容性墊片已被刪除。在 Linux 上,CLONE_*定義了附加常量以用于該SysProcAttr.Cloneflags字段。在 Linux 上,newSysProcAttr.CgroupFD 和SysProcAttr.UseCgroupFD字段提供了一種將子進程放入特定 cgroup 的方法。
  • 測試新方法B.Elapsed 報告基準的當前經過時間,這可能有助于計算使用 報告的速率ReportMetric。
  • 時間新的時間布局常量DateTime、 DateOnly和 TimeOnly 為公共 Go 源代碼調查中使用的三個最常見的布局字符串提供了名稱。新Time.Compare方法比較兩次。Parse? 現在忽略其輸入中的亞納秒精度,而不是將這些數字報告為錯誤。該Time.MarshalJSON方法現在更加嚴格地遵守 RFC 3339。
  • 統一碼/utf16新 AppendRune 函數將給定符文的 UTF-16 編碼附加到 uint16 切片,類似于utf8.AppendRune.

本文轉載自微信公眾號「 程序員升級打怪之旅」,作者「王中陽Go」,可以通過以下二維碼關注。

轉載本文請聯系「 程序員升級打怪之旅」公眾號。

責任編輯:武曉燕 來源: 程序員升職加薪之旅
相關推薦

2014-12-17 09:26:26

GoAndroid

2013-12-13 13:32:50

FirefoxFirefox 26

2012-10-31 10:19:37

2009-04-24 09:22:58

Ubuntu 9.04官方下載

2023-02-26 22:47:45

Go管理內存

2013-08-21 10:18:34

Chrome 29

2021-10-23 17:12:34

MX LinuxLinux

2021-08-12 10:52:00

谷歌Chrome Android

2010-04-27 09:07:08

2009-12-04 09:55:55

Linux內核Linux

2011-04-15 10:37:27

2013-05-22 15:02:13

Zend Framew

2020-12-09 14:34:08

Kubernetes容器1.20版本

2022-12-05 13:29:38

4MLinux編程語言Linux

2011-12-05 09:39:57

Node.js

2009-03-25 16:29:26

LinuxKernel 2.6.穩定版

2012-07-12 10:15:15

Node.js

2010-10-21 09:08:56

2021-10-11 14:32:08

PythonPython 3.10編程語言

2012-08-01 13:35:58

Chrome 21
點贊
收藏

51CTO技術棧公眾號

97视频国产在线| 国产网站在线| 精品三区视频| 在线中文字幕亚洲| 亚洲电影中文字幕在线观看| 国产精品成人品| 中文在线观看免费视频| 亚洲中文字幕在线一区| 欧美久久精品| 一区二区激情视频| 国产乱肥老妇国产一区二| www.超碰97| 久久99亚洲网美利坚合众国| 蜜臀av一区二区在线观看| 日韩激情av在线免费观看| 特级西西444| 97成人在线观看| 精品freesex老太交| 欧美日韩国产中字| 国产精品一区视频网站| 国产一区二区视频在线观看免费| 朝桐光一区二区| 2024国产精品| 2021国产精品视频| 老司机免费视频| 免费在线看电影| 久久精品欧美一区二区三区不卡 | 国产精品观看在线亚洲人成网| 美女网站视频色| 视频一区在线免费看| 亚洲综合一区在线| 综合久久国产| www.国产免费| 欧美激情91| 精品久久久久久久久久久久包黑料| 天天想你在线观看完整版电影免费| 青青青草网站免费视频在线观看| 影音先锋日韩资源| 日韩国产激情在线| 麻豆tv在线观看| 国内在线视频| 久久一区二区三区四区| 国产成人精品福利一区二区三区 | 欧美日韩一区二区三区四区在线观看 | 亚洲天堂色网站| 韩国一区二区av| 国产在线视频资源| 久久国产精品99久久人人澡| 美女福利精品视频| 国产精品麻豆入口| 永久免费精品视频| 无码av免费一区二区三区试看 | 日韩精品网站| 日韩亚洲欧美一区二区三区| 免费看国产一级片| av在线中文| 国产99久久久精品| 欧美整片在线观看| 色欲人妻综合网| 中文字幕亚洲综合久久五月天色无吗'' | 色婷婷激情综合| 日韩亚洲不卡在线| 国产视频手机在线| 一本久道综合久久精品| 在线视频日韩精品| 奇米777在线视频| 中文日产幕无线码一区二区| 亚洲欧洲日产国码二区| 国产精品12| 黄频网站在线观看| 美女mm1313爽爽久久久蜜臀| 午夜精品久久久久久久99热| 国产精品成人aaaa在线| 日韩精品诱惑一区?区三区| 色偷偷91综合久久噜噜| 国产老熟女伦老熟妇露脸| 日韩综合久久| 精品久久久久久电影| 精品人妻一区二区三区四区在线| 黄色av免费在线| 久久中文字幕电影| 日韩jizzz| 黄色网址在线免费播放| 亚洲一级二级在线| 最新视频 - x88av| 福利在线观看| 91香蕉视频mp4| 高清国产一区| 久色视频在线| 91免费精品国自产拍在线不卡| 裸模一区二区三区免费| 黄色一级大片在线免费看国产| heyzo一本久久综合| 91精品免费视频| 亚洲一区中文字幕在线| 懂色av中文一区二区三区| 欧美激情第一页在线观看| 日韩在线观看视频网站| 国产成人午夜99999| 91精品国产综合久久男男| 凹凸精品一区二区三区| 一本色道久久| 国产色视频一区| 色窝窝无码一区二区三区| 国产精品99久久久久久宅男| 国产精品高清网站| 性做久久久久久久| 国产成人综合自拍| 欧美日韩精品久久| 污污的视频在线观看| 亚洲免费在线电影| 国产精品一区在线免费观看| 无遮挡在线观看| 日韩欧美999| 成人久久久久久久久| 免费一二一二在线视频| 精品欧美国产一区二区三区| 天天干天天综合| 日本精品另类| 亚洲精品电影在线观看| 黄色工厂在线观看| 欧美日韩精品一本二本三本 | 欧美在线观看不卡| 国产精品五区| 5566成人精品视频免费| 99精品视频在线播放免费| 欧美极品少妇xxxxⅹ高跟鞋 | 91九色单男在线观看| 欧美成人综合在线| 婷婷夜色潮精品综合在线| 日韩欧美中文视频| 国产精品97| 欧美精品在线视频观看| 最近中文字幕免费在线观看| 美女一区二区视频| 日产精品久久久一区二区| 黄频免费在线观看| 亚洲福利视频网| 少妇人妻好深好紧精品无码| 欧美hentaied在线观看| 久久成年人免费电影| 精品少妇爆乳无码av无码专区| 国产精品黄色| 国产91久久婷婷一区二区| 中文字幕av无码一区二区三区| 久久97超碰国产精品超碰| 色就是色欧美| 欧美人动性xxxxz0oz| 制服丝袜成人动漫| 97精品国产97久久久久久| 国产精品久久久久7777| 在线你懂的视频| 性做久久久久久久免费看| 北条麻妃在线视频| 欧美日韩播放| 欧美xxxx做受欧美| 97人人爽人人爽人人爽| 99国产精品国产精品毛片| 日韩精品欧美专区| 成人日韩在线观看| 中文字幕国产亚洲2019| 亚洲自拍偷拍另类| 亚洲蜜臀av乱码久久精品| 国产在线a视频| 中文字幕21页在线看| 亚洲成av人乱码色午夜| 国产一区二区三区四区五区六区 | 国产一区二区三区四区福利| 老熟妇一区二区三区| 国产福利一区在线| 丁香色欲久久久久久综合网| 精品成人av| 日韩中文字幕精品| 午夜影院免费在线观看| 国产精品福利在线观看播放| 久久精品国产亚洲一区二区三区| 国产91在线高潮白浆在线观看| 国产理论电影在线观看| 精品1区2区3区| youjizz.com国产| 激情视频极品美女日韩| 国产一区二区三区视频免费| 在线观看亚洲一区二区| 亚洲精品中文在线| 中文字幕5566| 久久电影网电视剧免费观看| 男女啪啪免费观看| 伊人久久大香线蕉| 欧美极品少妇xxxxⅹ喷水| 中文字幕在线观看第二页| 1区2区3区国产精品| 日韩www视频| 免费观看成人鲁鲁鲁鲁鲁视频| 91精品国产综合久久香蕉的用户体验| 日韩电影免费观看| 亚洲天堂av高清| 国产乡下妇女做爰| 国产伦精品一区二区三区免费| 岛国大片在线播放| 成人情趣视频网站| 国产精品福利片| 啪啪免费视频一区| 在线激情影院一区| 中文字幕人妻一区二区三区视频| 亚洲女人****多毛耸耸8| 中文精品在线观看| 麻豆亚洲精品| 牛人盗摄一区二区三区视频| avtt久久| 久久91亚洲人成电影网站| 91亚洲视频在线观看| 亚洲成人精品一区二区| 天堂а√在线中文在线鲁大师| 99久久免费国产| 亚洲视频在线不卡| 日本欧美久久久久免费播放网| 欧美一二三区| 免费观看成人性生生活片| 欧美激情精品久久久久| 成人免费视频国产| 欧美日韩免费在线视频| 免费看特级毛片| 国产精品一区二区视频| 欧美三级理论片| 99久久www免费| 欧美中文娱乐网| 午夜精品影视国产一区在线麻豆| 人人做人人澡人人爽欧美| 在线观看电影av| 久久人人爽人人爽爽久久| 国产精品九九九| 亚洲黄色在线观看视频| 欧美片在线播放| 成人黄色免费网| 在线观看视频一区| 99久久99久久精品国产| 国产午夜精品一区二区| 久久精品老司机| 福利电影一区二区| 国产欧美视频一区| 久久成人精品| 国产极品在线视频| 日韩一级大片| 国产视频九色蝌蚪| 日韩激情图片| 手机看片福利永久国产日韩| 奇米亚洲欧美| 四虎影院一区二区三区| 成人一区而且| 中文字幕欧美人与畜| 天堂美国久久| 亚洲精品国产suv一区88| 牛牛影视久久网| 精品欧美一区二区三区久久久| 成人黄色免费短视频| 久久精品免费播放| 含羞草www国产在线视频| 久久亚洲一区二区三区四区五区高| 美女黄视频在线观看| 亚洲大胆人体av| 五月婷婷六月丁香| 91.com在线观看| 国产丝袜在线视频| 亚洲成av人乱码色午夜| 亚洲日本国产精品| 国产一区二区三区久久精品| 亚洲s色大片| 国产丝袜一区二区| 99热这里只有精品99| 精品国产999| 国产又粗又猛又黄视频| 欧美猛男男办公室激情| 日日噜噜噜噜人人爽亚洲精品| 日韩欧美在线视频观看| av首页在线观看| 欧美一区二区黄| 在线免费看av的网站| 538在线一区二区精品国产| 亚洲精品成av人片天堂无码| 日韩高清av在线| 在线免费看黄| 亚洲午夜精品久久久久久久久久久久| 国产h在线观看| 久久成人国产精品| 色戒汤唯在线| 成人性生交大片免费看视频直播 | 国产美女性感在线观看懂色av | 亚洲欧洲日本精品| 激情五月婷婷综合| 国产xxxxx在线观看| 蜜桃av噜噜一区| 精品人妻无码中文字幕18禁| 久久久久久久国产精品影院| 欧美大喷水吹潮合集在线观看| 国产亚洲综合在线| 永久免费看黄网站| 亚洲天堂成人在线观看| 美国精品一区二区| 中文久久乱码一区二区| 无码人妻aⅴ一区二区三区69岛| 日韩中文字幕区一区有砖一区 | 亚洲欧美日韩在线高清直播| 亚洲欧美另类日韩| 欧美色视频在线| 亚洲女同志亚洲女同女播放| 一区二区三区国产在线观看| 国产美女情趣调教h一区二区| 国产精品久久久久77777| 国产香蕉精品| 国产精品一区在线播放| 天天超碰亚洲| 日韩免费高清在线| 热久久免费视频| 亚洲成av人片在线观看无| 综合久久给合久久狠狠狠97色 | 欧美在线播放一区二区| 国内成人在线| 污免费在线观看| 国产精品狼人久久影院观看方式| 国产黄色大片免费看| 亚洲国产欧美一区二区三区丁香婷 | 欧美视频福利| 一区二区久久精品| 国产精品一区专区| 特级西西人体高清大胆| 欧美性极品xxxx娇小| 色窝窝无码一区二区三区成人网站| 美女黄色丝袜一区| 四虎国产精品永久在线国在线| 欧洲精品亚洲精品| 久久蜜桃资源一区二区老牛| 特级丰满少妇一级| 久久亚洲二区三区| 麻豆久久久久久久久久| 欧美在线色视频| 免费一级在线观看| 91精品国产高清久久久久久91| 国产不卡网站| 久久大片网站| 97精品视频在线看| 日本肉体xxxx裸体xxx免费| 久久久久国产成人精品亚洲午夜 | 黄色小说在线播放| www.久久久| 日韩精品免费一区二区三区竹菊 | 日韩中文字幕区一区有砖一区 | 岛国av一区二区在线在线观看| 日韩在线观看视频网站| 97在线视频免费| 日韩一级电影| 欧美日韩在线中文| 久久婷婷成人综合色| 无码人妻熟妇av又粗又大| 亚洲日本成人网| 不卡亚洲精品| 97人人干人人| 国产精品自拍区| 800av在线免费观看| 国产福利一区在线| 国产精品第56页| 亚洲精品一区二区三区婷婷月 | 亚洲一区区二区| 国内自拍第二页| 亚洲人成小说网站色在线| 精品人妻伦一二三区久久 | 亚洲国产欧美日韩| 极品少妇一区二区三区| 国产人成视频在线观看| 欧美色另类天堂2015| seseavlu视频在线| 亚洲精品日韩av| 欧美美女一区| 国产精品一区二区小说| 亚洲精品少妇30p| 无码国产精品一区二区免费16| 日本精品在线视频| 外国成人激情视频| 亚洲色图欧美另类| 91成人在线精品| 午夜成人鲁丝片午夜精品| 国产a级全部精品| 中文字幕一区二区三三| 久久久久国产精品无码免费看| 在线观看亚洲a| 日韩精品卡一| 日本一区高清不卡| 国产精品2024| 老熟妇一区二区三区| 欧美精品中文字幕一区| 羞羞答答一区二区| 91欧美一区二区三区| 中文字幕在线一区免费| 6080午夜伦理| 不卡伊人av在线播放| 全球av集中精品导航福利| 九九九九九伊人| 欧美性生交大片免网| 日本一本在线免费福利| 亚洲国产精品毛片| 91色综合久久久久婷婷|