Google kompaniyasi Go dasturlash tilining yangi versiyasini taqdim etdi. Versiya 1.18 "parametrlashtirilgan" deb ataladigan "umumiy" dasturlash uchun funksionallikni qo'shadi.
O'z so'zlari bilan aytganda, bu Go versiyasi 1 chiqqandan beri dasturlash tilidagi eng muhim va eng katta o'zgarishdir. Jeneriklarning g'oyasi shundan iboratki, u endi turlarni o'zgartirish orqali funksiyalar va ma'lumotlar tuzilmalarini ifodalash uchun funksionallikka imkon beradi. Bu funksiyaga olib kelinayotgan haqiqiy ma'lumotlarni mavhumlashtirish usuli sifatida interfeys turini belgilash orqali ruxsat etilgan "umumiylik"ni istisno qiladi.
Google shuni ko'rsatadiki, Go ishlab chiquvchilari funksionallik shubhasiz yangi xatolarga olib kelishini tushunishlari kerak. Shuning uchun ular ushbu "generiklar" ga ehtiyotkorlik bilan yondashishlari kerak.
Go 1.18 Beta-dagi boshqa funksiyalar
Yuqoridagi funksiyalarga qo'shimcha ravishda, yangi oldindan ko'rish ham fuzzingga asoslangan testlarni yozish uchun o'rnatilgan yordamga ega. Ushbu testlar dasturlarning ishdan chiqishiga olib keladigan yoki noto'g'ri javoblarni qaytarishga olib keladigan kirishlarni avtomatik ravishda topishi mumkin. Go 1.18 Beta shuningdek, yangi “Go Workpace rejimi”ni taklif etadi. Bu dasturchilarga bir vaqtning o'zida bir nechta Go modullari bilan ishlash imkonini beradi. Googlega ko'ra, bu, ayniqsa, yirik loyihalar uchun foydalidir.
Bundan tashqari, 1.18 Beta versiyasi kengaytirilgan go version -m buyrug'i bilan funksionallikni qo'shadi. Ushbu buyruq endi tafsilotlarni kompilyator bayroqlari sifatida saqlaydi. Dastur endi debug.ReadBuildInfo buyrug'i bilan o'zining qurilish tafsilotlarini so'rashi mumkin.
Bundan tashqari, Go 1.17 dan beri mavjud bo'lgan qo'shimcha registrga asoslangan qo'ng'iroqlar konventsiyasi oldindan ko'rishga qo'shildi. Oldingi versiyada bu funksiya faqat x86 va x64 tizimlarida Go kodini tezlashtirish uchun mos bo'lgan bo'lsa, endi u ARM64 va PPC64 asosidagi tizimlar uchun ham mos keladi. Bu 20 foizgacha ko'proq tezlikni ta'minlashi kerak.