Go programlama dili, ilk yayınlandığı 2009'dan bu yana çok gelişti. Go 1.18, jenerik ilaçlara ve diğer birçok önemli güncellemeye verdiği destek nedeniyle merakla beklenen bir sürümdü.

Go, Mart 2022'de 1.18 sürümünü yayınladı. İşte en önemli değişiklikler hakkında bilgi.

Jenerikler için Destek

Genel programlama, daha esnek türleri kabul edebilen ve döndürebilen işlevler yazmanıza olanak tanır.

Jenerikler için destekten önce, parametre türlerini ve dönüş türlerini açıkça belirtmeniz gerekiyordu. Jeneriklerin en basit biçimi, yazılmamış parametreleri belirtmenize izin verir:

işlevHer Şeyi Yazdır[T herhangi](şeyT) {
fmt.Println(şey)
}

Ancak jenerik ilaçlar bundan çok daha fazla güç sunar. Parametreler için hemen hemen her tür kombinasyonu ve ayrıntı düzeyini bildirebilirsiniz. Örneğin, kısıtlamalar sipariş edebileceğiniz herhangi bir değer üzerinde çalışan bir işlev yazmak için paket. Buna int, floats ve stringler dahildir. İşte sözdizimini gösteren bir örnek:

içe aktarmak "golang.org/x/exp/constraints
instagram viewer
"

işlevMaks.[T kısıtlamaları. sipariş edildi](giriş[]T) (maksimumT) {
_, v için := aralık girişi {
eğer v > maksimum {
maks = v
}
}

dönüş maksimum
}

Bu işlevin genel türü kullandığını unutmayın, kısıtlamalar. sipariş edildi, parametresini ve dönüş türünü bildirmek için.

Jenerikler, kodda belirsizlik ve esneklik sağlar. Jenerik önerisi ve değişiklikleri geriye dönük olarak uyumludur.

Tüy Testi

Bulanıklaştırma bir yazılım test tekniği hatalı, beklenmeyen veya öngörülemeyen verilerle bir programı doğrulayan.

bu test yapmak paket fuzzing'i 1.18'de tanıtıyor, bu nedenle bir fuzz tanımlamak için onu standart kitaplıktan içe aktarmanız gerekir:

içe aktarmak "test yapmak"

içe aktardıktan sonra test yapmak paket, bir tür tanımlayıcı iletebilirsiniz *test yapmak. F test fonksiyonuna.

işlevtestFunc(f*test. F) {
// senin kodun
}

Fuzzing, kodu test etmek için girdi parametreleri üretir. Girdiler kullanıcı tanımlı olmadığı için bulanıklaştırmanın sonucu tahmin edilemez. Fuzzing, daha iyi kod testleri yazmanıza ve varlığından haberdar olmadığınız hataları yakalamanıza yardımcı olmalıdır.

Git Çalışma Alanı Desteği

Çalışma alanları, bir projeyi veya daha büyük bir birimi oluşturan benzer kaynak kod dizinleridir. Çalışma alanları, benzer kodları işlevselliğe göre gruplayarak kodu yönetmeyi ve hata ayıklamayı kolaylaştırır.

Geleneksel olarak, Go projelerini kaynak koduna (kaynak) ve yürütülebilir dosyalar (çöp Kutusu). Go araç zinciri, birincisinden kaynak kodunu sonrakinde yürütülebilir dosyalara oluşturur. Go çalışma alanları, geliştiricilerin belirli bir ana modülle Go modüllerini kullanarak birden çok çalışma alanıyla çalışmasına olanak tanır.

Çalışma alanları oluşturma komutu:

$ git çalış <emretmek>

Kullan İş aşağıdaki gibi alt komutlarla komut:

  • içinde → belirtilen dizinde bir çalışma alanı oluşturur.
  • kullanmak → go çalışma alanı dosyası olan go.work'e yeni bir modül ekler.
  • Düzenle → go çalışma alanı dosyasını düzenler.
  • senkronizasyon → yapı listesindeki bağımlılıkları çalışma alanı modüllerine senkronize eder.

Gidilecek çalışma alanlarının dahil edilmesi, dili geliştirmede planlandığı gibi verimliliği artıracaktır.

Performans geliştirmeleri

Gitmek 1.18 sürümü artık ABI çağrı kuralında ARM64 Apple M1 ve 64-bit PowerPC'yi destekliyor. Bu, bu cihazların kullanıcıları için CPU performansında %10'un üzerinde kazanç sağlar.

İşlevlerde bildirilen ve kullanılmayan değişkenler artık program derlemesinde hata olarak günlüğe kaydediliyor.

bu git inşa et komutu, diğer ilgili komutlarla birlikte, -asan C/C++ ile birlikte çalışabilirliği destekleyen bayrak. Bu, Go geliştiricilerinin Go programlarını C ve C++ programlarıyla kullanmalarına yardımcı olacaktır.

Diğer Önemli Güncellemeler

bu git al komutu, paketleri artık modüle duyarlı modda kurmuyor; bu, kullandığınız zamandan büyük bir değişiklik. ilk önce Go ile başladım. bu git yükle komut yerine geçer almak çalışma alanları arasında modül bağımlılıklarını ayarlamak için.

Tür denetleyicisi artık jenerikleri işlediğinden, hata mesajları önceki sürümlerden farklı şekilde günlüğe kaydedilebilir.

Programların derlenmesi için geçen süre 1.18'de daha yavaş olabilir. Ancak bu, Go programınızı derledikten sonra yürütme süresini etkilemeyecektir.

En son değişikliklerin tüm ayrıntılarını sürüm notlarında bulabilirsiniz. 1.18 git.

Go 1.18'in Çeşitli Çeşitli Eklemeleri Var

Go 1.18'i kullanarak artık genel kod yazabilir, fuzzing kullanarak verimli bir şekilde test edebilir ve çalışma alanlarını kullanarak Go modülleri arasında geçiş yapabilirsiniz. Hatta C ve C++ programlarıyla birlikte çalışan kodlar da yazabilirsiniz.

Golang Bugün Öğrenmeye Değer mi?

Sonrakini Oku

PaylaşmakCıvıldamakPaylaşmakE-posta

İlgili konular

  • Programlama
  • Programlama
  • Programlama dilleri

Yazar hakkında

MUO Personeli

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın