Generics
Bu sayfada Go geliştiricilerin "Go'da niye generics yok...Go'ya generics nezaman eklenecek?" diye diye Go dilinin yaratıcılarına adeta hayatı zindan ettiği Generic'leri inceleyeceğiz. Generics Go'nun 1.18 versiyonu ile dile dahil edildi.
Generics olmadan da uzun süre boyunca Go yazmak mümkündü tabi ki. Peki bu kadar istenilen bu yapının bize ne gibi faydaları bulunuyor bir bakalım.
Ufak bir örnek ile başlayalım.
Yukarıdaki kodlarda basit bir ekleme işlemi yapan bir fonksiyon var. Bu fonksiyonumuz int
değer alıyor ve int
değer döndürüyor.
Bu fonksiyonumuza int
tipinde sayı1
değişkenimizi verdik ve ekrana bastırdık. Neyse zaten kod basit kendini açıklıyor ama nedense ben hep bu dökümanın başından beri herşeyi açıklıyorum. Bazı arkadaşlarımız bu yüzden bana kızıyor olabilir ☺️
Eğer sayı1
değişkenimiz int
değil de float64
tipinde olsaydı, arttır fonksiyonumuzu değiştirmemiz gerekirdi. Eğer birden fazla sayı tipi ile işlem yapacağımız durumlar olsaydı, her biri için farklı fonksiyonlar eklememiz gerekecekti.
Generic'ler ile nasıl yapabileceğimizi görelim.
main
bloğunun içinde baktığımızda farklı değişken tipindeki 2 sayıyı aynıyı fonksiyona parametre olarak verdik.
Bunu nasıl yaptığımız büyük bir sır değil tabiki. Biraz daha aşağıya baktığımızda kendini belli ediyor. arttır
fonksiyonunun parametre parantezlerinden önce köşeli parantez açarak, bu kısma n
isminde int
veya float64
tipinde değer alabilen bir tip oluşturduk. Fonksiyonumuzun parametre parantezinde n
tipi ile belirlediğimiz tipte değerler alabilir hale geldik.
Yukarıdaki örneğimizde oluşturduğumuz generic fonksiyonda parametre tiplerinde kısıtlama yaptık.
Last updated