Google, Go programlama dilinin yeni sürümünün önizlemesini yayınladı. Sürüm 1.18, 'parametreli' olarak adlandırılan türlerle 'jenerik' programlama için işlevsellik ekler.
Kendi ifadeleriyle bu, Go sürüm 1'in piyasaya sürülmesinden bu yana programlama dilinde yapılan en önemli ve en büyük değişikliktir. Jeneriklerin arkasındaki fikir, artık türleri değiştirerek işlevleri ve veri yapılarını temsil etmeye yönelik işlevselliğe izin vermesidir. Bu, bir işleve getirilen gerçek verileri soyutlamanın bir yolu olarak bir arayüz tipinin tanımlanmasının izin verdiği 'genelliği' hariç tutar.
Google, Go geliştiricilerinin, işlevselliğin şüphesiz yeni hatalara yol açacağının farkına varmaları gerektiğini belirtiyor. Bu nedenle bu 'jeneriklere' dikkatle yaklaşmaları gerekir.
Go 1.18 Beta'daki diğer işlevler
Yukarıdaki işlevlere ek olarak, yeni önizleme aynı zamanda bulanıklaştırma tabanlı testler yazmaya yönelik yerleşik desteğe de sahiptir. Bu testler, programların çökmesine veya geçersiz yanıtlar döndürmesine neden olan girişleri otomatik olarak bulabilir. Go 1.18 Beta aynı zamanda yeni bir 'Go çalışma alanı modu' da sunuyor. Bu, programcıların aynı anda birden fazla Go modülüyle çalışmasına olanak tanır. Google'a göre bu özellikle büyük projeler için kullanışlıdır.
Ayrıca, sürüm 1.18 Beta, genişletilmiş go version -m komutuyla işlevsellik ekler. Bu komut artık ayrıntıları derleyici bayrakları olarak saklıyor. Artık bir program, debug.ReadBuildInfo komutuyla kendi derleme ayrıntılarını sorgulayabilir.
Ayrıca, Go 1.17'den bu yana mevcut olan daha fazla kayıt tabanlı arama kuralı önizlemeye eklenmiştir. Önceki sürümde bu işlevsellik yalnızca x86 ve x64 sistemlerinde Go kodunu hızlandırmak için uygunken, artık ARM64 ve PPC64 tabanlı sistemler için de uygundur. Bu yüzde 20'ye kadar daha fazla hız sağlamalıdır.