Bahasa pemrograman Go telah banyak berkembang sejak pertama kali diterbitkan pada tahun 2009. Go 1.18 adalah rilis yang sangat dinanti karena dukungannya untuk obat generik dan banyak pembaruan penting lainnya.

Go merilis versi 1.18 pada Maret 2022. Inilah perubahan paling signifikan.

Dukungan untuk Generik

Pemrograman umum memungkinkan Anda menulis fungsi yang dapat menerima dan mengembalikan tipe yang lebih fleksibel.

Sebelum mendukung obat generik, Anda perlu secara eksplisit menyatakan tipe parameter dan tipe pengembalian. Bentuk generik yang paling sederhana memungkinkan Anda untuk menentukan parameter yang tidak diketik:

fungsiCetak Apa Saja[T apapun](halT) {
fmt.Println(hal)
}

Tetapi obat generik menawarkan lebih banyak kekuatan daripada hanya ini. Anda dapat mendeklarasikan hampir semua kombinasi dan perincian tipe untuk parameter. Misalnya, Anda dapat menggunakan kendala package untuk menulis fungsi yang beroperasi pada nilai apa pun yang dapat Anda pesan. Ini termasuk int, float, dan string. Berikut adalah contoh yang menunjukkan sintaks:

impor "golang.org/x/exp/constraints"

fungsiMaks[T kendala. Dipesan](memasukkan[]T) (maksimalT) {
untuk _, v := masukan rentang {
jika v > maks {
maks = v
}
}

kembali maksimal
}

Perhatikan bahwa fungsi ini menggunakan tipe generik, kendala. Dipesan, untuk mendeklarasikan parameter dan tipe pengembaliannya.

Generik memberikan ketidakpastian dan fleksibilitas dalam kode. Proposal dan perubahan Generik kompatibel ke belakang.

Pengujian Fuzz

Fuzzing adalah teknik pengujian perangkat lunak yang memvalidasi program dengan data yang salah, tak terduga, atau tak terduga.

Itu pengujian package memperkenalkan fuzzing di 1.18, jadi untuk mendefinisikan fuzz, Anda harus mengimpornya dari pustaka standar:

impor "pengujian"

Setelah mengimpor pengujian paket, Anda dapat melewati pengidentifikasi tipe *pengujian. F ke fungsi tes.

fungsitesFunc(f *pengujian. F) {
// kode Anda
}

Fuzzing menghasilkan parameter input untuk kode pengujian. Hasil fuzzing tidak dapat diprediksi karena inputnya tidak ditentukan oleh pengguna. Fuzzing akan membantu Anda menulis tes kode yang lebih baik dan menangkap bug yang tidak Anda ketahui ada.

Pergi Dukungan Ruang Kerja

Ruang kerja adalah direktori dari kode sumber serupa yang membentuk sebuah proyek atau unit yang lebih besar. Ruang kerja memudahkan untuk mengelola dan men-debug kode dengan mengelompokkan kode serupa berdasarkan fungsionalitas.

Secara konvensional, Anda membagi proyek Go menjadi kode sumber (src) dan file yang dapat dieksekusi (tempat sampah). Toolchain Go membangun kode sumber dari yang pertama menjadi executable di yang terakhir. Ruang kerja Go memungkinkan pengembang untuk bekerja dengan banyak ruang kerja menggunakan modul Go dengan modul utama tertentu.

Perintah untuk membuat workspace adalah:

$ pergi bekerja <memerintah>

Menggunakan kerja perintah dengan subperintah seperti:

  • init → membuat ruang kerja di direktori yang ditentukan.
  • menggunakan → menambahkan modul baru ke go.work, file ruang kerja go.
  • edit → mengedit file ruang kerja go.
  • sinkronisasi → menyinkronkan dependensi dari daftar build ke modul ruang kerja.

Dimasukkannya ruang kerja untuk pergi akan meningkatkan produktivitas seperti yang direncanakan dalam mengembangkan bahasa.

Peningkatan Kinerja

Pergi versi 1.18 sekarang mendukung ARM64 Apple M1 dan PowerPC 64-bit dalam konvensi panggilan ABI. Ini menghasilkan lebih dari 10% peningkatan kinerja CPU untuk pengguna perangkat ini.

Variabel yang dideklarasikan dan tidak digunakan dalam fungsi sekarang dicatat sebagai kesalahan pada kompilasi program.

Itu pergi membangun perintah, bersama dengan perintah terkait lainnya, mendukung -asan flag, yang mendukung interoperabilitas dengan C/C++. Ini akan membantu pengembang Go menggunakan program Go dengan program C dan C++.

Pembaruan Penting Lainnya

Itu pergi dapatkan command tidak lagi menginstal paket dalam mode modul-sadar, yang merupakan perubahan besar sejak Anda pertama kali memulai dengan Go. Itu pergi menginstal perintah menggantikan Dapatkan untuk menyesuaikan dependensi modul di seluruh ruang kerja.

Karena pemeriksa tipe sekarang menangani obat generik, pesan kesalahan mungkin masuk secara berbeda dari versi sebelumnya.

Waktu yang dibutuhkan untuk mengkompilasi program mungkin lebih lambat di 1.18. Tapi ini tidak akan mempengaruhi waktu eksekusi setelah Go mengkompilasi program Anda.

Anda dapat menemukan detail lengkap dari semua perubahan terbaru dalam catatan rilis untuk Pergi 1.18.

Go 1.18 Memiliki Beberapa Tambahan Beragam

Dengan menggunakan Go 1.18, Anda sekarang dapat menulis kode generik, menguji secara efisien menggunakan fuzzing, dan beralih antar modul Go menggunakan ruang kerja. Anda bahkan dapat menulis kode yang berfungsi bersama dengan program C dan C++.

Apakah Golang Layak Dipelajari Hari Ini?

Baca Selanjutnya

MembagikanMenciakMembagikanSurel

Topik-topik yang berkaitan

  • Pemrograman
  • Pemrograman
  • Bahasa pemrograman

Tentang Penulis

Staf MUO

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan