Go programming language release 1.14

Gipasa ni pagpagawas sa programming language Lakaw 1.14, nga gipalambo sa Google uban ang pag-apil sa komunidad ingon usa ka hybrid nga solusyon nga naghiusa sa taas nga pasundayag sa mga hiniusa nga mga sinultian nga adunay mga bentaha sa mga sinultian sa script sama sa kadali sa pagsulat sa code, katulin sa pag-uswag ug pagpanalipod sa sayup. Kodigo sa proyekto giapod-apod sa 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 executables nga modagan sa lumad nga walay paggamit sa usa ka virtual machine (profiling, debugging, ug uban pang runtime nga mga subsystem sa pagtuki sa problema gihiusa ingon nga runtime nga mga sangkap), nga nagtugot kanimo nga makab-ot ang pasundayag nga ikatandi sa mga programa sa C.

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.

nag-unang mga inobasyongipaila sa Go 1.14 nga pagpagawas:

  • Ang bag-ong sistema sa module sa "go" nga sugo gideklarar nga andam na alang sa kinatibuk-ang paggamit, gipagana pinaagi sa default, ug girekomendar alang sa pagdumala sa dependency imbes sa GOPATH. Ang bag-ong sistema sa module adunay gihiusa nga suporta sa bersyon, mga kapabilidad sa paghatud sa pakete, ug gipaayo nga pagdumala sa pagsalig. Uban sa mga modules, ang mga developers wala na gihigot sa pagtrabaho sulod sa usa ka GOPATH tree, mahimong tin-aw nga nagpatin-aw sa mga bersyon nga dependency, ug makahimo og balik-balik nga pagtukod.
  • Gidugang suporta alang sa pag-embed sa mga interface nga adunay nagsapaw nga hugpong sa mga pamaagi. Ang mga pamaagi gikan sa usa ka built-in nga interface mahimo na nga adunay parehas nga mga ngalan ug pirma sama sa mga pamaagi sa mga naa na nga interface. Ang klaro nga gipahayag nga mga pamaagi nagpabilin nga talagsaon sama kaniadto.
  • Ang performance sa "defer" nga ekspresyon gipauswag, nga naghimo niini nga halos sama ka paspas sa pagtawag sa usa ka deferred function direkta, nga nagtugot sa deferred function execution sa performance-sensitive code.
  • Gihatag ang asynchronous nga preemption sa mga coroutine (goroutine) - ang mga loop nga walay mga function call mahimo na karon nga moresulta sa pagka-deadlock sa scheduler o paglangan sa pagsugod sa pagkolekta sa basura.
  • Ang kaepektibo sa sistema sa alokasyon sa panid sa panumduman gipauswag ug karon adunay labi ka gamay nga mga panagsangka sa lock sa mga pag-configure nga adunay daghang mga kantidad sa GOMAXPROCS. Ang resulta mao ang pagkunhod sa latency ug pagtaas sa throughput samtang dungan nga intensive nga nag-apod-apod sa dagkong mga bloke sa memorya.
  • Ang pag-lock na-optimize ug ang gidaghanon sa mga switch sa konteksto gipakunhod sa dihang nagdagan ang mga internal nga timer nga gigamit sa panahon.Pagkahuman, time.Tick, net.Conn.SetDeadline functions.
  • Sa go command, ang "-mod=vendor" nga bandila gipalihok pinaagi sa default kung adunay direktoryo sa vendor sa gamut, gituyo alang sa paghatud sa mga eksternal nga dependency nga nahigot sa usa ka piho nga vendor. Gidugang ang usa ka bulag nga "-mod = mod" nga bandila aron makarga ang mga module gikan sa cache sa module kaysa gikan sa direktoryo nga "vendor". Kung ang go.mod file kay read-only, ang "-mod=readonly" nga bandera gitakda sa default kung walay top "vendor" nga direktoryo. Gidugang ang flag nga "-modfile=file" aron itakda ang alternatibong go.mod file imbis nga anaa sa root directory sa module.
  • Gidugang ang GOINSECURE environment variable, kung gitakda, ang go command wala magkinahanglan sa paggamit sa HTTPS ug gilaktawan ang pagsusi sa sertipiko kung direkta nga nagkarga sa mga module.
  • Gidugang sa compiler ang "-d=checkptr" nga bandila, nga gipagana sa default, aron masusi ang code alang sa pagsunod sa mga lagda alang sa luwas nga paggamit sa dili luwas.Pointer.
  • Usa ka bag-ong pakete ang gilakip sa pagpadala hash/maphash uban sa non-cryptographic hash functions sa paghimo hash tables alang sa arbitraryong byte sequences o strings.
  • Gidugang nga suporta sa eksperimento alang sa 64-bit nga RISC-V nga plataporma sa Linux.
  • Gidugang nga suporta alang sa FreeBSD sa 64-bit nga mga sistema sa ARM.

Source: opennet.ru

Idugang sa usa ka comment