精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

精品无码m3u8在线观看| 久久精品中文字幕一区二区三区 | 不卡中文字幕在线| 一级成人免费视频| 欧美日韩天堂| 亚洲免费精彩视频| 国产精品久久久久久久99| 丁香花在线电影小说观看| 99精品视频一区二区三区| 国产色综合天天综合网| 国产精品16p| 欧美一区二区性| 欧美精品一区二区三区蜜臀| 欧美伦理视频在线观看| 日本在线观看大片免费视频| 国产无人区一区二区三区| 亚洲一区二区三区在线免费观看| 日本特黄特色aaa大片免费| 成人动漫免费在线观看| 亚洲成年人在线播放| 三上悠亚在线一区二区| 999福利在线视频| 亚洲欧洲性图库| 蜜桃av色综合| 欧美一区二区三区激情| 久久国产成人午夜av影院| 97视频色精品| 精国产品一区二区三区a片| 欧美伦理在线视频| 日韩av最新在线| 人妻巨大乳一二三区| 国产精品扒开腿做爽爽爽视频软件| 亚洲日本在线看| 色噜噜色狠狠狠狠狠综合色一| 刘亦菲毛片一区二区三区| 精东粉嫩av免费一区二区三区| 人九九综合九九宗合| 精品无码人妻一区二区三区品 | 国产精品69毛片高清亚洲| 国产精品久久网| 色屁屁影院www国产高清麻豆| 欧美成熟视频| 久久天天躁狠狠躁夜夜爽蜜月| 女女互磨互喷水高潮les呻吟| 风间由美性色一区二区三区四区| 欧美一区二区黄色| www.成年人| 91麻豆精品一二三区在线| 欧美日韩午夜在线| 91制片厂毛片| 成人精品国产亚洲| 欧美日韩国产免费| 色戒在线免费观看| 成人在线视频免费看| 欧美怡红院视频| 成人性视频欧美一区二区三区| 亚洲美女久久精品| 精品国产1区2区| 大肉大捧一进一出好爽视频| sm久久捆绑调教精品一区| 亚洲成人av福利| 人妻夜夜添夜夜无码av| 国产污视频在线播放| 欧美日韩色婷婷| 国产精品wwwww| 偷拍视频一区二区三区| 日韩欧美在线第一页| 久久久久久久少妇| 免费一区二区三区四区| 欧美久久一二三四区| 国内自拍第二页| 亚洲国产aⅴ精品一区二区| 精品日韩一区二区三区| 少妇一级淫片免费放播放| 亚洲国产欧美日韩在线观看第一区| 亚洲国产精品嫩草影院久久| 免费在线观看成年人视频| 国产欧美日韩视频在线| 中文字幕日韩在线观看| 久久久精品视频免费观看| 在线播放亚洲| 国产成人精品最新| 一级黄色大片免费观看| 国产曰批免费观看久久久| 国产精品一区二区三区四区五区| 香蕉av一区二区三区| 欧美国产欧美综合| 狠狠干视频网站| 欧美aa在线观看| 欧美日韩国产高清一区二区| 三级网站免费看| 日韩欧美黄色| 日韩在线观看网站| 五月天婷婷丁香| 青草国产精品久久久久久| 成人羞羞国产免费| 亚洲欧洲精品视频| 中文字幕一区二区三| 国内精品视频一区二区三区| 国产欧美自拍| 欧美精品一区二区精品网| www.日本高清视频| 国产综合婷婷| 国产欧美精品久久久| 黄片毛片在线看| 国产精品不卡在线| 精品人妻一区二区三区四区在线| 国产精品99久久久久久董美香| 精品国产一区二区在线观看| 免费黄在线观看| 伊人久久亚洲热| 国产日韩一区在线| 欧洲天堂在线观看| 亚洲制服丝袜一区| 亚洲精品综合在线观看| 美女网站一区| 久久久久久网站| 亚洲在线免费观看视频| 2021中文字幕一区亚洲| wwwwww欧美| 欧美成人xxxx| 国产一区二区三区在线看| 日韩美女黄色片| 国产精品亚洲人在线观看| 色涩成人影视在线播放| 中文在线免费视频| 亚洲电影第1页| 成人免费视频网站入口::| 日韩成人午夜电影| 蜜桃精品久久久久久久免费影院| 青青青草视频在线| 69久久99精品久久久久婷婷| 五月天精品视频| 日韩一级免费| 国产精品久久久久久久久婷婷 | 中文字幕一区二区三中文字幕| 美女福利视频在线| 欧美18xxxx| 久久久亚洲网站| 亚洲爱情岛论坛永久| 亚洲欧洲精品成人久久奇米网| 国产精品乱码久久久久| 天堂99x99es久久精品免费| 欧美激情一级精品国产| 好吊色视频一区二区| 亚洲精品久久久蜜桃| 99久久99精品| 中文字幕人成人乱码| 亚洲xxxx做受欧美| 成人av黄色| 欧美一区二区三区婷婷月色| 99久久99久久精品国产| 国产中文字幕精品| www.18av.com| 无人区乱码一区二区三区| 久久99久久99精品中文字幕| 国产黄色美女视频| 亚洲一区二区三区爽爽爽爽爽| 中文字幕一二三区| 亚洲国产影院| 国产尤物91| 自拍网站在线观看| 国产一区二区三区视频| 曰批又黄又爽免费视频| 亚洲视频在线一区二区| 中文字幕avav| 99精品热6080yy久久| 精品欧美日韩| gogo亚洲高清大胆美女人体| 最近2019年日本中文免费字幕| 在线观看色网站| 亚洲乱码国产乱码精品精可以看| 两女双腿交缠激烈磨豆腐 | 无码无遮挡又大又爽又黄的视频| 亚洲va久久久噜噜噜久久| 国产精品日韩电影| www视频在线看| 亚洲国产天堂久久国产91| 特级毛片www| 国产精品不卡在线| 三级视频网站在线观看| 久久中文在线| 男同互操gay射视频在线看| 国内精品国产成人国产三级粉色| 欧美一级高清免费播放| 在线观看免费版| 精品少妇一区二区三区日产乱码| 国产情侣自拍av| 国产精品网曝门| 日韩精品国产一区| 奇米影视在线99精品| 日本大胆人体视频| 嫩草影视亚洲| 亚洲va电影大全| xxx欧美xxx| 裸体女人亚洲精品一区| 视频一区二区三区在线看免费看| 欧美区视频在线观看| 亚洲一区 视频| 亚洲手机成人高清视频| 中文字幕丰满乱子伦无码专区| 激情久久五月天| 欧美污视频网站| 欧美粗暴jizz性欧美20| 亚洲激情一区二区| 天天躁日日躁成人字幕aⅴ| 成人福利视频在线观看| 中文在线8资源库| 色综合色综合网色综合| 色开心亚洲综合| 亚洲欧美变态国产另类| 性欧美videos另类hd| 精品视频一区二区不卡| 国产无套粉嫩白浆内谢| 亚洲日本欧美天堂| 一二三四在线观看视频| av一二三不卡影片| 伊人影院在线观看视频| 伊人久久视频| 欧美国产综合一区二区| 日本国产在线视频| 狠狠色综合播放一区二区| 国产亚洲天堂网| 欧美三级特黄| 国产av不卡一区二区| 精品国产日韩欧美| 欧美激情论坛| 欧美调教网站| av资源站久久亚洲| 亚洲精品大全| 国产精品视频中文字幕91| 松下纱荣子在线观看| 97视频免费在线观看| 密臀av在线| 欧美成人性色生活仑片| 免费在线看a| 神马国产精品影院av| 国产色a在线| 亚洲精品视频二区| 免费人成在线观看网站| 精品视频久久久| 午夜在线视频免费| 日韩电影中文字幕| 天堂中文网在线| 日韩不卡在线观看日韩不卡视频| 国产亚洲欧美aaaa| 噜噜噜在线观看播放视频| 日韩的一区二区| 亚洲欧美日韩免费| 日韩电影中文字幕一区| 青青久在线视频| 亚洲午夜精品久久久久久久久久久久| 欧美孕妇性xxxⅹ精品hd| 国产丝袜视频一区| 第一页在线观看| 最近2019年手机中文字幕| 乱人伦中文视频在线| 久久久av电影| 丝袜在线视频| 久久久久久九九九| 男人久久天堂| 日本久久亚洲电影| 欧美网站免费| 91视频免费网站| 成人福利免费在线观看| 久久超碰亚洲| 精品国产一区二区三区四区 | 又色又爽又黄视频| 国产福利视频一区二区三区| 涩视频在线观看| 91在线观看一区二区| 久久久视频6r| 国产精品黄色在线观看| 久草免费在线视频观看| 欧美性xxxxx极品| 中文字幕一区二区三区免费看| 欧美日韩和欧美的一区二区| hs视频在线观看| 亚洲精品国产福利| 欧美成年黄网站色视频| 欧美—级高清免费播放| 亚洲电影观看| 成人黄色在线观看| 高潮久久久久久久久久久久久久| 久热国产精品视频一区二区三区| 欧洲美女日日| 日韩不卡视频一区二区| 美女网站久久| 日韩在线一区视频| 9人人澡人人爽人人精品| 国产探花视频在线播放| 尤物在线观看一区| 在线免费一区二区| 精品国产制服丝袜高跟| 久草在现在线| 欧美国产在线电影| 在线看欧美视频| 韩国成人动漫在线观看| 日韩欧美午夜| 国产h视频在线播放| 免费人成黄页网站在线一区二区| 蜜桃色一区二区三区| 欧美经典一区二区| 日韩欧美亚洲一区二区三区| 欧美精品一卡两卡| 欧洲一区av| 欧美大片大片在线播放| 福利一区在线| 久久精彩视频| 欧美三区美女| 97超碰人人爽| 国产女同性恋一区二区| 懂色av.com| 7777精品伊人久久久大香线蕉完整版 | 国产一二精品视频| 69精品无码成人久久久久久| 亚洲一二三区在线观看| 国产女同91疯狂高潮互磨| 一区二区三区回区在观看免费视频| 538在线视频| 91在线播放视频| 亚洲精品成人| 日本肉体xxxx裸体xxx免费| 久久综合九色综合欧美亚洲| 久久高清无码视频| 欧美一区二区三区免费大片 | 自拍亚洲一区| 波多野结衣综合网| 成人永久aaa| 激情四射综合网| 欧美一区二区三区男人的天堂| 日本免费中文字幕在线| 国产精品香蕉国产| 欧美精品久久久久久 | 国产在线视视频有精品| 中文天堂资源在线| 欧美视频你懂的| 成人在线免费公开观看视频| 国产成人精品av在线| 丝袜久久网站| 日韩欧美国产综合在线| 成人高清在线视频| 粉嫩aⅴ一区二区三区| 亚洲第一网站男人都懂| 电影k8一区二区三区久久| 国产经品一区二区| 黄色成人在线网址| 蜜臀av粉嫩av懂色av| 夜色激情一区二区| 性一交一乱一色一视频麻豆| 欧美激情二区三区| 欧美aaaaa级| av片中文字幕| 国产欧美一区二区三区鸳鸯浴 | 欧美日韩偷拍视频| 欧美成人午夜电影| 丁香影院在线| 欧美日韩电影一区二区| 日欧美一区二区| 黄色一级片一级片| 欧美一级夜夜爽| 国产高清在线a视频大全 | 国产成+人+综合+亚洲欧洲| 国产成人一区| jizzzz日本| 亚洲自拍偷拍麻豆| 欧美孕妇孕交| 成人福利网站在线观看11| 国内精品久久久久久久97牛牛| 蜜臀av粉嫩av懂色av| 色婷婷久久综合| 欧美猛烈性xbxbxbxb| 成人av影视在线| 国产精品久久久亚洲一区| 老熟妇一区二区| 欧美一区二区三区在| 丁香花在线影院| 涩涩涩999| 国产精品亚洲专一区二区三区| 亚洲综合一二三| 一本色道久久综合狠狠躁篇的优点 | 国产精品久久久久久久无码| 色8久久人人97超碰香蕉987| 亚洲精品传媒| 国产不卡一区二区三区在线观看| 亚洲神马久久| 欧美做爰啪啪xxxⅹ性| 欧美r级在线观看| a成人v在线| 精品成在人线av无码免费看| 久久久国产精华| www久久久com| 国产精品欧美亚洲777777| 欧美日韩免费| 99精品欧美一区二区| 精品日韩欧美一区二区| 色婷婷综合久久久中字幕精品久久 | 可以在线观看的av| 91免费电影网站| 美女精品在线|