Google şirkəti Go proqramlaşdırma dilinin yeni versiyasının ön görünüşünü təqdim edib. Versiya 1.18 "parametrləşdirilmiş" adlanan növlərlə "ümumi" proqramlaşdırma üçün funksionallıq əlavə edir.
Öz sözləri ilə desək, bu, Go versiyası 1-in buraxılışından bəri proqramlaşdırma dilində edilən ən mühüm və ən böyük dəyişiklikdir. Jeneriklərin arxasında duran ideya ondan ibarətdir ki, o, indi tipləri dəyişdirərək funksiyaları və məlumat strukturlarını təmsil etmək üçün funksional imkan verir. Bu, bir funksiyaya gətirilən faktiki məlumatın mücərrədləşdirilməsi üsulu kimi interfeys tipini müəyyən etməklə icazə verilən “ümumiliyi” istisna edir.
Google bildirir ki, Go tərtibatçıları funksionallığın şübhəsiz ki, yeni səhvlərə səbəb olacağını başa düşməlidirlər. Buna görə də onlar bu “generiklərə” ehtiyatla yanaşmalıdırlar.
Go 1.18 Beta-da digər funksionallıq
Yuxarıdakı funksionallığa əlavə olaraq, yeni önizləmə həm də fuzzing əsaslı testlərin yazılması üçün daxili dəstəyə malikdir. Bu testlər proqramların sıradan çıxmasına və ya etibarsız cavabları qaytarmasına səbəb olan daxiletmələri avtomatik tapa bilər. Go 1.18 Beta həmçinin yeni "Go iş sahəsi rejimi" təklif edir. Bu, proqramçılara eyni vaxtda bir neçə Go modulu ilə işləməyə imkan verir. Google-a görə, bu, xüsusilə böyük layihələr üçün faydalıdır.
Bundan əlavə, 1.18 Beta versiyası uzadılmış keçid versiyası -m əmri ilə funksionallıq əlavə edir. Bu əmr indi detalları tərtibçi bayraqları kimi saxlayır. Proqram indi debug.ReadBuildInfo əmri ilə öz qurma təfərrüatlarını sorğulaya bilər.
Həmçinin, Go 1.17-dən bəri mövcud olan daha çox registr əsaslı zəng konvensiyası ilkin baxışa əlavə edilmişdir. Əvvəlki versiyada bu funksiya yalnız x86 və x64 sistemlərində Go kodunu sürətləndirmək üçün uyğun idisə, indi ARM64 və PPC64 əsaslı sistemlər üçün də uyğundur. Bu, 20 faizə qədər daha çox sürət təmin etməlidir.