Human sa unom ka bulan nga pag-develop, gipagawas na ang Go programming language, bersyon 1.23. Ang Google, uban sa input sa komunidad, nag-develop sa Go language isip usa ka hybrid solution nga naghiusa sa taas nga performance sa mga compiled language uban sa mga bentaha sa scripting language, sama sa kadali sa pagsulat, paspas nga pag-develop, ug proteksyon sa mga sayop. Ang code sa proyekto giapod-apod ubos sa lisensya sa BSD.
Ang syntax ni Go gibase sa pamilyar nga mga elemento sa C nga pinulongan nga adunay pipila ka mga paghulam gikan sa Oberon nga pinulongan. Ang pinulongan mubo ra, apan ang code sayon basahon ug sabton. Ang Go code gihugpong ngadto sa separado nga binary executable files nga gipatuman sa lumad nga paagi, nga walay paggamit ug virtual machine (profiling, debugging modules ug uban pang runtime nga mga subsystem sa pagtuki sa problema gisagol isip runtime component), nga nagtugot sa performance nga ikatandi sa C programs.
Ang proyekto sa sinugdan naugmad uban ang usa ka mata sa multi-threaded programming ug episyente nga operasyon sa multi-core nga mga sistema, lakip ang paghatag og operator-level nga paagi alang sa pag-organisar sa parallel computing ug interaksyon tali sa parallel-executed nga mga pamaagi. Naghatag usab ang lengguwahe og built-in nga proteksyon batok sa sobra nga gigahin nga mga bloke sa panumduman ug naghatag katakus sa paggamit sa usa ka tigkolekta sa basura.
Lakip sa mga pagbag-o sa bag-ong pagpagawas:
- Kon mag-define og mga range sa mga value sa "for" loops, mahimo na nimo karon i-specify ang usa ka function isip argument sa "range" expression aron gamiton kini nga function isip iterator. Kini nagtugot kanimo sa paghimo og custom iterators para sa bisan unsang sequence. Ang mosunod nga mga klase sa function mahimong i-specify: func(func() bool), func(func(K) bool), ug func(func(K, V) bool). Usa ka bag-ong iter package ang gidugang, nga naghatag og mga basic operations para sa pag-organisar sa iteration sa mga sequence. Dugang pa, bag-ong mga kapabilidad para sa pagtrabaho uban sa mga iterator ang gidugang sa mga slices ug maps packages. Pananglitan, aron mag-iterate sa mga key sa usa ka sorted associative array, mahimo na nimo karon i-specify ang "for i, x := range slices.Sorted(maps.Keys(m)) {...}".
- Gidugang ang pasiunang suporta (gipaandar pinaagi sa GOEXPERIMENT=aliastypeparams) para sa paggamit sa mga type alias nga adunay kaugalingong mga parameter sa mga generic function, nga magamit sa paghimo og mga function nga mogana sa daghang mga type sa usa ka higayon.
- Ang toolkit adunay built-in nga kapabilidad sa pagpadala sa telemetry ngadto sa server telemetry.go.dev. Ang telemetry gitipigan sa lokal nga auditable files ug naglangkob lamang sa datos sa paggamit sa toolkit (ang telemetry dili idugang sa mga aplikasyon sa tiggamit nga nakolekta gamit ang toolkit). Sa default, ang pagpadala sa telemetry ngadto sa usa ka external server dili na ma-disable (opt-in) ug kinahanglan nga ma-enable gamit ang bag-ong "go telemetry on" nga sugo. Ang pagpadala sa telemetry makatabang sa pag-ila sa mga anomaliya ug dili kasagaran nga pamatasan, pagtimbang-timbang sa mga interaksyon sa developer sa toolkit, ug pagsabot kung unsang mga feature ang labing gipangita ug kung unsa ang talagsa ra gamiton. Gilauman nga ang natipon nga mga estadistika makapahimo sa modernisasyon sa toolkit, nga makapauswag sa kahusayan ug kadali sa paggamit niini.

- Gidugang ang sugo nga "go env -changed" aron ilista lamang ang mga setting kansang mga kantidad lahi sa default.
- Gidugang ang sugo nga "go mod tidy -diff", nga nagtugot kanimo sa pag-output sa mga pagbag-o isip patch sa diff format imbes nga maghimo og mga pagbag-o sa mga file.
- Ang sugo nga "go vet" naglakip na karon og version analyzer nga nagpakita sa mga feature nga bag-o pa kaayo para magamit sa kasamtangang bersyon sa Go. Pananglitan, ang analyzer mopagawas og pasidaan bahin sa paggamit sa reflect.TypeFor function, nga gipaila sa bersyon 1.22, kung mosulay sa paggamit niini sa usa ka module nga nag-angkon nga nagsuporta sa bersyon 1.21.
- Ang implementasyon sa mga tipo sa time.Timer ug time.Ticker gipauswag, nga adunay mga pagbag-o nga may kalabotan sa buffering ug pag-optimize sa pagkolekta sa basura.
- Gidugang ang structs package, nga naghubit sa mga tipo para sa pag-usab sa mga kabtangan sa istruktura.
- Gidugang ang talagsaon nga pakete nga adunay mga gimbuhaton para sa pag-canonicalize sa parehas nga mga kantidad.
- Gidugang ang suporta para sa godebug directive aron makontrol ang debugging sa go.mod ug go.work files.
- Gidugang ang eksperimental nga suporta para sa OpenBSD sa 64-bit nga RISC-V nga mga sistema (openbsd/riscv64). Gipauswag nga suporta Linux, macOS, ARM64, RISC-V ug WASI.
- Niuswag ang performance sa i386 ug amd64 architectures sa dihang gi-enable ang Profile-guided optimization (PGO), nga nagkonsiderar sa mga feature nga nakita atol sa pagpatuman sa programa.
Source: opennet.ru

