Baru-baru ini keluaran versi baharu bahasa pengaturcaraan «Go 1.19» telah diumumkan, versi yang menambah baik pada keluaran sebelumnya dengan menambahkan pelbagai penambahbaikan dan, terutamanya, pembetulan pepijat. Antara perkara baharu yang boleh kami serlahkan ialah peningkatan dalam pengurusan memori, peningkatan keselamatan, antara lain.
Bagi mereka yang baru menggunakan Go, anda harus tahu bahawa ini adalah bahasa pengaturcaraan yang dibangunkan dengan penyertaan komuniti sebagai penyelesaian hibrid yang menggabungkan prestasi tinggi bahasa yang disusun dengan kelebihan seperti bahasa skrip seperti kemudahan menulis kod. pembangunan dan perlindungan pepijat.
Sintaks Go adalah berdasarkan unsur biasa bahasa C. dengan beberapa pinjaman daripada bahasa Python. Bahasanya agak ringkas, tetapi kodnya mudah dibaca dan difahami.
Kod Go disusun ke dalam fail boleh laku binari yang berasingan yang berjalan secara asli, tanpa menggunakan mesin maya (profil, penyahpepijatan dan subsistem penyelesaian masalah masa jalan lain dibina sebagai komponen masa jalan).
Ciri baru utama Go 1.19
Dalam versi baharu Go 1.19 yang dibentangkan ini, ia diserlahkan kerja telah dilakukan untuk memperhalusi sokongan untuk fungsi dan jenis generik ditambah dalam versi terkini, dengan bantuan pembangun boleh menentukan dan menggunakan fungsi yang direka untuk berfungsi dengan beberapa jenis sekaligus, ditambah dengan pengoptimuman prestasi beberapa program menggunakan generik telah meningkat sebanyak 20%.
Perubahan lain yang menonjol dari versi baru ialah menambah sokongan untuk pautan, senarai dan sintaks yang lebih mudah untuk menentukan tajuk dalam ulasan dokumen. Utiliti gofmt menyediakan pemformatan dengan ciri lanjutan komen dalam fikiran dengan dokumentasi API.
Selain itu model memori Go disemak semula untuk diselaraskan dengan C, C++, Java, JavaScript, Rust dan Swift yang tidak mengakui nilai atom yang konsisten secara berurutan. Jenis baharu seperti atomic.Int64 dan atomic.Pointer[T] telah diperkenalkan dalam pakej penyegerakan/atom untuk memudahkan penggunaan nilai atom.
Sebaliknya, disebut juga bahawa pengumpul sampah kini mempunyai keupayaan untuk menentukan had lembut, yang dikuatkuasakan dengan mengehadkan saiz timbunan dan mengembalikan memori kepada sistem dengan lebih agresif, iaitu penggunaan tidak dijamin berada dalam had yang ditentukan di bawah semua keadaan. Had lembut boleh berguna untuk mengoptimumkan atur cara yang dijalankan dalam bekas memori tetap.
Ia juga diketengahkan bahawa pada sistem Unix, deskriptor fail tambahan didayakan secara automatik (meningkatkan had RLIMIT_NOFILE), untuk mempercepatkan ekspresi perubahan besar pada sistem x86-64 dan ARM64, jadual lompat digunakan, yang membolehkan ekspresi perubahan besar diproses sehingga 20% lebih pantas.
Pada sistem riscv64, menghantar argumen fungsi melalui daftar CPU telah dilaksanakan, yang membolehkan peningkatan prestasi sekitar 10%.
Daripada perubahan yang lain yang menonjol dari versi baru ini:
- Banyak pengoptimuman prestasi telah dilaksanakan.
- Menambah sokongan untuk menetapkan saiz tindanan rutin secara dinamik untuk mengurangkan saiz data yang disalin
- Menambahkan sokongan percubaan untuk persekitaran Linux pada sistem dengan pemproses Loongson berdasarkan seni bina LoongArch 64-bit (GOARCH=loong64).
- Menukar model memori tidak menjejaskan keserasian dengan kod yang ditulis sebelum ini.
- Menambahkan sekatan binaan "unix" baharu yang boleh digunakan dalam baris "go:build" untuk menapis sistem seperti Unix (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
- Untuk meningkatkan keselamatan, modul os/exec kini mengabaikan laluan relatif apabila mengembangkan pembolehubah persekitaran PATH (contohnya, apabila menentukan laluan fail boleh laku, direktori semasa tidak lagi diperiksa).
Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut tentang keluaran baharu ini, anda boleh menyemak butiran di pautan berikut.