Enda programming mutauro 1.18 kuburitswa

Kuburitswa kweGo 1.18 programming mutauro kunoratidzwa, iyo iri kuvandudzwa neGoogle nekutora chikamu kwenharaunda semhinduro yakasanganiswa inosanganisa kuita kwepamusoro kwemitauro yakaunganidzwa nezvakanakira zvemitauro yekunyora sekureruka kwekunyora kodhi. , kukurumidza kwekukura nekudzivirira kukanganisa. Iyo kodhi yeprojekiti yakagoverwa pasi peiyo BSD rezinesi.

Syntax yaGo yakavakirwa pazvinhu zvinozivikanwa zvemutauro weC nezvimwe zvinokwereta kubva mumutauro wePython. Mutauro wacho wakapfupikiswa, asi kodhi yacho iri nyore kuverenga nekunzwisisa. Go kodhi inounganidzwa kuita inomira-yega bhinari inogadziriswa mafaera anomhanya natively pasina kushandisa chaiyo muchina (profiling, debugging modules, uye mamwe ekumhanya-mhanya ekuona dambudziko subsystems akabatanidzwa seruntime components), izvo zvinobvumira kuita kuenzaniswa neC zvirongwa.

Iyo purojekiti yakatanga kugadziridzwa neziso kune akawanda-tambo dhizaini hurongwa uye hunoshanda hunoshanda pane akawanda-epakati masisitimu, kusanganisira kupa opareta-nhanho nzira yekuronga parallel computing uye kudyidzana pakati peparallel-executed nzira. Mutauro unopawo kuchengetedzwa kwakavakirwa-mukati kubva kune-yakagoverwa ndangariro mabhuroko uye inopa kugona kushandisa muunganidzi wemarara.

Iyo vhezheni itsva inowedzera tsigiro yemabasa egeneric uye marudzi (generics), nerubatsiro rwekuti mugadziri anogona kutsanangura uye kushandisa mabasa akagadzirirwa kushanda nemhando dzinoverengeka kamwechete. Izvo zvakare zvinogoneka kushandisa interfaces kugadzira akasanganiswa marudzi anotenderera akawanda data data. Tsigiro yemagenerics inoitwa pasina kutyora kumashure kuenderana nekodhi iripo. // Sum set values, inoshandira int64 uye float64 marudzi func SumIntsOrFloats[K inofananidzwa, V int64 | float64](m mepu[K]V) V { var s V ye _, v := range m { s += v } return s } // Imwe sarudzo ine generic type tsanangudzo: type Number interface { int64 | float64 } func SumNumbers[K comparable, V Number](m mepu[K]V) V {var s V ye _, v := range m {s += v } returns }

Zvimwe zvigadziriso:

  • Zvishandiso zvefuzzing kodhi yekuyedza zvakabatanidzwa mune yakajairwa toolkit. Panguva yekuyedzwa kwekufungidzira, rwizi rwese zvingangoitika musanganiswa wedata rekuisa inogadzirwa uye kutadza kunokwanisa panguva yekugadziriswa kwavo kunorekodhwa. Kana nhevedzano ikaparara kana kuti isingaenderane nemhinduro inotarisirwa, zvino maitiro aya anogona kuratidza tsikidzi kana kusagadzikana.
  • Yakawedzera tsigiro yeakawanda-modular nzvimbo dzekushanda, ichikubvumidza iwe kuita mirairo pane akawanda mamodule kamwechete, ichikubvumidza iwe kuvaka uye kumhanya kodhi panguva imwe chete mumamodule akawanda.
  • Yakakosha kuita optimizations yakagadzirwa kune masisitimu akavakirwa paApple M1, ARM64 uye PowerPC64 processors. Yakagonesa kugona kushandisa marejista pachinzvimbo chestack kupfuudza nharo kumabasa uye kudzosera zvawanikwa. Yakavandudzwa inline unrolling yezvishwe nemuunganidzi. Type yekutarisa mucompiler yakagadziridzwa zvachose. Mimwe bvunzo inoratidza kuwedzera kwe20% mukuita kwekodhi kana ichienzaniswa neyakaburitswa yapfuura, asi kuunganidza pachayo kunotora anenge 15% kureba.
  • Munguva yekumhanya, kushanda kwekudzorera kusunungurwa kwakasununguka kune sisitimu yekushandisa kwakawedzerwa uye kushanda kwemuunganidzi wemarara kwakagadziridzwa, maitiro ayo ave achinyanya kufanotaura.
  • Mapakeji matsva net/netip uye debug/buildinfo akawedzerwa kuraibhurari yakajairwa. Tsigiro yeTLS 1.0 uye 1.1 yakavharwa nekusarudzika mukodhi yemutengi. Iyo crypto/x509 module yamisa kugadzirisa zvitupa zvakasainwa uchishandisa iyo SHA-1 hashi.
  • Zvinodiwa zvenharaunda muLinux zvakasimudzwa; kuti ushande, iwe zvino unofanirwa kuve neLinux kernel yeinenge vhezheni 2.6.32. Mukuburitswa kunotevera, shanduko dzakafanana dzinotarisirwa kuFreeBSD (rutsigiro rweFreeBSD 11.x bazi richamiswa) uye kanenge FreeBSD 12.2 ichadikanwa kushanda.

Source: opennet.ru

Voeg