Go programming language release 1.16

Gipresentar ang pagpagawas sa Go 1.16 programming language, nga gipalambo sa Google uban ang pag-apil sa komunidad ingon usa ka hybrid nga solusyon nga naghiusa sa taas nga pasundayag sa mga natipon nga mga sinultian nga adunay mga bentaha sa mga sinultian sa script ingon kadali sa pagsulat sa code. , katulin sa pag-uswag ug pagpanalipod sa sayup. 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 Python nga pinulongan. Ang pinulongan mubo ra, apan ang code sayon ​​basahon ug sabton. Ang Go code gihugpong ngadto sa stand-alone binary executable files nga modagan sa lumad nga walay paggamit sa usa ka virtual machine (profiling, debugging modules, ug uban pang runtime problem detection subsystems gi-integrate isip runtime components), 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.

Mga yawe nga bag-ong bahin nga gipaila sa Go 1.16:

  • Gidugang ang embed nga pakete, nga naghatag mga himan alang sa pag-embed sa arbitraryong mga file ug mga direktoryo sa programa. Usa ka bag-ong "//go:embed" nga direktiba ang gihatag aron itakda ang mga file nga i-embed sa oras sa pag-compile. Pananglitan, ang pagpiho sa “//go:embed test.txt” sa code comment ug dayon ang pagdeklarar sa variable nga “var f embed.FS” motultol sa pag-embed sa test.txt file ug ang abilidad sa pag-access niini pinaagi sa “ f" deskriptor. Sa parehas nga paagi, mahimo nimong i-embed ang mga file nga adunay mga kapanguhaan o indibidwal nga mga kantidad sa usa ka piho nga tipo nga gikinahanglan alang sa trabaho, pananglitan, aron makuha ang string variable nga "s" gikan sa file nga bersyon.txt, mahimo nimong ipiho: import _ "embed ” //go:embed version.txt var s string print (s)
  • Pinaagi sa default, ang bag-ong sistema sa module nga adunay suporta sa gihiusa nga bersyon gikinahanglan na, gipuli ang pagdumala sa dependency nga nakabase sa GOPATH. Ang GO111MODULE environment variable gitakda na karon sa "on" pinaagi sa default ug ang modules mode gigamit bisan unsa pa ang presensya sa usa ka go.mod file sa nagtrabaho o parent directory. Sa bag-ong mode, paghimo og mga command sama sa "go build" ug "go test" ayaw usba ang sulod sa go.mod ug go.sum, ug ang "go install" command process version arguments ("go install example.com/[protektado sa email]"). Aron ibalik ang daan nga pamatasan, usba ang GO111MODULE sa "auto". Namatikdan nga 96% sa mga developer ang mibalhin na sa bag-ong module system.
  • Ang linker na-optimize. Alang sa dagkong mga proyekto, ang layout karon 20-25% nga mas paspas ug nanginahanglan og 5-15% nga gamay nga memorya.
  • Nagdugang ang compiler og suporta para sa inline nga pagpalapad sa mga function nga adunay pinamubo nga mga kahulugan sa "for" loops, method values ​​​​ug 'type switch' constructs.
  • Gidugang nga suporta alang sa mga sistema sa Apple nga adunay bag-ong Apple M1 ARM chip. Gidugang ang netbsd/arm64 ug openbsd/mips64 port nga adunay suporta para sa NetBSD sa 64-bit ARM ug OpenBSD sa MIPS64 system. Gidugang nga suporta para sa cgo ug ang "-buildmode=pie" mode sa linux/riscv64 port.
  • Ang suporta alang sa x87 compilation mode gihunong na (GO386=387). Ang suporta alang sa SSE2 nga walay instruksiyon nga mga processor anaa na karon pinaagi sa "GO386=softfloat" software mode.

Dugang pa, mahimo natong matikdan ang pagsugod sa pagsulay sa beta nga pagpagawas sa Dart 2.12 nga pinulongan, diin ang luwas nga paagi sa paggamit sa "Null" nga bili (null nga kaluwasan) gipalig-on, nga makatabang sa paglikay sa mga crash tungod sa mga pagsulay sa paggamit sa mga variable kansang ang bili dili matino ug gibutang sa "Null". Ang mode nagpasabot nga ang mga variables dili mahimong adunay null values ​​gawas kon kini klaro nga gihatag sa value null. Ang mode estrikto nga nagtahod sa variable nga mga tipo, nga nagtugot sa compiler nga magamit ang dugang nga mga pag-optimize. Ang pagsunod sa tipo gisusi sa oras sa pag-compile, pananglitan, kung sulayan nimo nga i-assign ang kantidad nga "Null" sa usa ka variable nga adunay usa ka tipo nga wala magpasabut nga wala mahibal-an nga kahimtang, sama sa "int", usa ka sayup ang ipakita.

Source: opennet.ru

Idugang sa usa ka comment