Ngaleupaskeun basa pamrograman Go 1.13

Diwanohkeun release basa programming Buka 1.13, anu dikembangkeun ku Google kalayan partisipasi masarakat salaku solusi hibrida anu ngagabungkeun kinerja luhur basa anu disusun sareng kaunggulan basa skrip sapertos betah nyerat kode, laju pangembangan sareng panyalindungan kasalahan. Kodeu proyék disebarkeun ku handapeun lisénsi BSD.

Sintaksis Go dumasar kana unsur akrab tina basa C sareng sababaraha injeuman tina basa Python. Basana rada singket, tapi kodena gampang dibaca sareng kaharti. Kode Go disusun jadi executable binér anu mandiri anu dijalankeun sacara asli tanpa nganggo mesin virtual (profil, debugging, sareng subsistem deteksi masalah runtime sanésna diintegrasikeun salaku komponén runtime), nu ngidinan Anjeun pikeun ngahontal kinerja comparable jeung program C.

Proyék ieu mimitina dikembangkeun kalayan panon pikeun program multi-threaded sareng operasi efisien dina sistem multi-inti, kalebet nyayogikeun sarana tingkat operator pikeun ngatur komputasi paralel sareng interaksi antara metode anu dieksekusi paralel. Basa ogé nyadiakeun panyalindungan diwangun-di ngalawan blok memori leuwih-dialokasikeun sarta nyadiakeun kamampuhan pikeun ngagunakeun collector sampah.

utama inovasidiwanohkeun dina pelepasan Go 1.13:

  • Paket crypto/tls gaduh dukungan protokol diaktipkeun sacara standar TLS 1.3. Ditambahkeun pakét anyar "crypto / ed25519" kalayan dukungan pikeun tanda tangan digital Ed25519;
  • Ditambahkeun dukungan pikeun awalan literal numerik anyar pikeun nangtukeun wilangan binér (misalna 0b101), oktal (0o377), imajinér (2.71828i) sareng titik ngambang héksadesimal (0x1p-1021), sareng kamampuan ngagunakeun karakter "_" pikeun misahkeun digit sacara visual. dina jumlah badag (1_000_000);
  • Watesan pikeun ngan ukur nganggo konter anu teu ditandatanganan dina operasi shift parantos dileungitkeun, anu ngahindarkeun konvérsi anu teu perlu kana jinis uint sateuacan nganggo operator "‹‹" sareng "››";
  • Ditambahkeun dukungan pikeun platform Illumos (GOOS=illumos). Kasaluyuan sareng platform Android 10 parantos dipastikeun. Syarat pikeun versi minimum FreeBSD (11.2) sareng macOS (10.11 "El Capitan") parantos ningkat.
  • Terus ngembangkeun sistem modul anyar, nu bisa dipaké salaku alternatif pikeun GOPATH. Sabalikna sareng rencana anu diumumkeun sateuacana dina Go 1.13, sistem ieu henteu diaktipkeun sacara standar sareng meryogikeun aktivasina ngaliwatan variabel GO111MODULE=on atanapi nganggo konteks dimana modul diterapkeun sacara otomatis. Sistem modul anyar gaduh dukungan versi terpadu, kamampuan pangiriman pakét, sareng manajemén kagumantungan anu ningkat. Kalayan modul, pamekar henteu deui kabeungkeut pikeun damel dina tangkal GOPATH, tiasa sacara eksplisit nangtukeun dependensi versi, sareng nyiptakeun gedong anu tiasa diulang.

    Beda sareng rilis sateuacana, aplikasi otomatis sistem énggal ayeuna tiasa dianggo nalika file go.mod aya dina diréktori kerja atanapi diréktori indungna nalika ngajalankeun paréntah go, kalebet nalika aya dina diréktori GOPATH/src. Variabel lingkungan anyar geus ditambahkeun: GOPRIVATE, nu nangtukeun jalur tina modul diaksés masarakat awam, sarta GOSUMDB, nu nangtukeun parameter aksés ka database checksum pikeun modul teu didaptarkeun dina file go.sum;

  • Paréntah "go" sacara standar ngamuat modul sareng pariksa integritasna nganggo eunteung modul sareng pangkalan data checksum anu dikelola ku Google (proxy.golang.org, sum.golang.org sareng index.golang.org);
  • Rojongan pikeun pakét binér waé parantos dileungitkeun; ngawangun pakét dina modeu "//go: binér-hijina-pakét" ayeuna nyababkeun kasalahan;
  • Ditambahkeun dukungan pikeun sufiks "@patch" kana paréntah "go get", nunjukkeun yén modulna kedah diropéa kana sékrési pangropéa panganyarna, tapi tanpa ngarobih versi utama atanapi minor ayeuna;
  • Nalika nyandak modul tina sistem kontrol sumber, paréntah "go" ayeuna ngalakukeun pamariksaan tambahan dina senar versi, nyobian cocog nomer pseudo-versi sareng metadata tina gudang;
  • rojongan ditambahkeun inspeksi kasalahan (kasalahan wrapping) ngaliwatan kreasi wrappers nu ngidinan pamakéan pawang kasalahan baku. Salaku conto, kasalahan "e" tiasa dibungkus ku kasalahan "w" ku cara nyayogikeun metode Buka baju, balik "w". Duanana kasalahan "e" jeung "w" sadia dina program jeung kaputusan dijieun dumasar kana kasalahan "w", tapi "e" nyadiakeun konteks tambahan pikeun "w" atawa interprets eta béda;
  • Kinerja komponén runtime parantos dioptimalkeun (ningkatkeun kagancangan dugi ka 30% parantos kacatet) sareng mulangkeun mémori anu langkung agrésif kana sistem operasi parantos dilaksanakeun (saméméhna, mémori dipulangkeun saatos lima menit atanapi langkung, tapi ayeuna langsung. sanggeus ngurangan ukuran tumpukan).

sumber: opennet.ru

Tambahkeun komentar