Rilis basa pemrograman Go 1.18

Rilis basa pamrograman Go 1.18 ditampilake, sing dikembangake dening Google kanthi partisipasi komunitas minangka solusi hibrida sing nggabungake kinerja basa sing dikompilasi kanthi kaluwihan basa skrip kaya gampang nulis kode. , kacepetan pembangunan lan pangayoman kesalahan. Kode proyek disebarake miturut lisensi BSD.

Sintaks Go adhedhasar unsur akrab saka basa C kanthi sawetara pinjaman saka basa Python. Basane cukup ringkes, nanging kode kasebut gampang diwaca lan dingerteni. Kode Go dikompilasi dadi file eksekusi binar sing mlaku kanthi asli tanpa nggunakake mesin virtual (profil, modul debugging, lan subsistem deteksi masalah runtime liyane digabungake minangka komponen runtime), sing ngidini kinerja sing bisa dibandhingake karo program C.

Proyek kasebut wiwitane dikembangake kanthi fokus program multi-threaded lan operasi sing efisien ing sistem multi-inti, kalebu nyedhiyakake sarana tingkat operator kanggo ngatur komputasi paralel lan interaksi antarane metode sing dieksekusi paralel. Basa kasebut uga nyedhiyakake proteksi sing dibangun marang pamblokiran memori sing diparengake lan menehi kemampuan kanggo nggunakake kolektor sampah.

Versi anyar nambahake dhukungan kanggo fungsi lan jinis umum (generik), kanthi bantuan pangembang bisa nemtokake lan nggunakake fungsi sing dirancang kanggo nggarap sawetara jinis bebarengan. Sampeyan uga bisa nggunakake antarmuka kanggo nggawe jinis gabungan sing mbentang sawetara jinis data. Dhukungan kanggo generik dileksanakake tanpa ngilangi kompatibilitas mundur karo kode sing wis ana. // Jumlah set nilai, dianggo kanggo int64 lan float64 jinis func SumIntsOrFloats[K iso dibandhingke, V int64 | float64](m map[K]V) V {var s V for _, v:= range m {s += v } return s } // Pilihan liyane kanthi definisi jinis umum: jinis Antarmuka nomer {int64 | float64 } func SumNumbers[K comparable, V Number](m map[K]V) V { var s V for _, v := range m { s += v } return s }

dandan liyane:

  • Utilitas kanggo uji kode fuzzing digabungake menyang toolkit standar. Sajrone uji coba fuzzing, aliran kabeh kombinasi acak data input digawe lan kemungkinan gagal sajrone proses direkam. Yen urutan tubrukan utawa ora cocog karo respon sing dikarepake, prilaku iki bisa uga nuduhake bug utawa kerentanan.
  • Dhukungan ditambahake kanggo ruang kerja multi-modular, ngidini sampeyan nglakokake printah ing pirang-pirang modul bebarengan, ngidini sampeyan mbangun lan mbukak kode ing pirang-pirang modul bebarengan.
  • Optimasi kinerja sing signifikan wis digawe kanggo sistem adhedhasar prosesor Apple M1, ARM64 lan PowerPC64. Ngaktifake kemampuan kanggo nggunakake register tinimbang tumpukan kanggo ngirim argumen menyang fungsi lan ngasilake asil. Peningkatan inline unrolling puteran dening compiler. Priksa jinis ing compiler wis rampung redesigned. Sawetara tes nuduhake 20% Tambah ing kinerja kode dibandhingake release sadurungΓ©, nanging kompilasi dhewe njupuk bab 15% maneh.
  • Ing runtime, efisiensi mbalekake memori sing dibebasake menyang sistem operasi wis tambah lan operasi pengumpul sampah wis apik, prilaku sing bisa diramalake.
  • Paket anyar net / netip lan debug / buildinfo wis ditambahake menyang perpustakaan standar. Dhukungan kanggo TLS 1.0 lan 1.1 dipateni kanthi standar ing kode klien. Modul crypto/x509 wis mandheg ngolah sertifikat sing ditandatangani nggunakake hash SHA-1.
  • Syarat kanggo lingkungan ing Linux wis diunggahake; kanggo bisa digunakake, sampeyan saiki kudu duwe kernel Linux paling ora versi 2.6.32. Ing release sabanjurΓ©, owah-owahan padha samesthine kanggo FreeBSD (dhukungan kanggo cabang FreeBSD 11.x bakal mandek) lan paling FreeBSD 12.2 bakal dibutuhake kanggo bisa.

Source: opennet.ru

Add a comment