İleri Düzey Fonksiyonlar | Bölüm 5

Bu bölümde, bir fonksiyona başka bir fonksiyonu argüman olarak vermeyi göreceğiz. Hemen başlayalım.

Bunun için ilk önce toplama ve çarpma işlemi yapan iki ayrı fonksiyon yazıyorum:

İkisine de x ve y olarak iki argüman verdim ve bunları toplama/çarpma şeklinde döndürdüm.

Şimdi, bir fonksiyon daha yazacağım:

chooseAnOperation isimli fonksiyona üç adet argüman verdim. Bunlardan biri func şeklinde. Bu, argüman olarak bir fonksiyon vereceğimi gösterir. Ancak elbette, buna istediğiniz ismi verebilirsiniz. Sonrasında gelen a ve b argümanları ise üzerinde işlem yapacağım değerler olacak. return func(a, b) ifadesi sayesinde argüman olarak vereceğim fonksiyonun içerisinde a ve b adına vereceğim değerler ile işlem yapıp sonucu döndüreceğim.

Fonksiyonu çalıştıralım, daha iyi anlayacaksınız.

Gördüğünüz üzere benden sırasıyla func, a ve b değerlerini girmemi istiyor. Peki, örneğin ben addition() fonksiyonunu vermek istiyorsam bunu yazarken parantez kullanır mıyım kullanmaz mıyım?

Amacım, fonksiyonun return ettiği x + y değerini elde etmek değil; fonksiyonun yaptığı işi almaktır. Dolayısıyla fonksiyonu çağırırken parantez kullanmak yerine parantezler olmadan çağırıyorum ki fonksiyonun kendisiyle işlem yapabileyim.

Argüman olarak fonksiyon verdikten sonra 3 ve 4 değerlerini girdim. Tam olarak bu noktada addition(x, y) ifadesi, addition(3, 4) durumuna düşecek ve return ifadesinde yer alan toplama işlemi sayesinde bu iki sayıyı toplayabileceğiz. Çalıştırıp görelim; 7 sonucunu almamız lazım.

Sonuç doğru bir şekilde geldi. Tekrar belirtmekte yarar var; addition() şeklinde çağırmak yerine sade bir şekilde, addition şeklinde çağırdığımız için addition() fonksiyonunun döndürdüğü değeri değil, yaptığı işlemi almış oluyoruz. Bu sayede verdiğimiz 3 ve 4 değerleri aslında sırasıyla hem a ve b değerlerine hem de x ve y değerlerine eşit oluyor. Aynı işlemi çarpma işlemi için yapalım.

Sonuç yine doğru bir şekilde geldi. Yine burada parantez kullanmadığımız için multiplication() fonksiyonunun yaptığı işi yani çarpma işlemini alıyoruz; x ve y değerlerinin döndürdüğü sonucu değil.

Ortalama hesabı yapan basit bir örnek yapalım.

Bunun için, yukarıda gördüğünüz üzere notları aldığımız bir fonksiyon yazdım. 3 adet sınav notumuz olduğu için ortalamayı bulmak adına bunları toplayıp 3'e bölüyorum ve sonucu return ediyorum.

Şimdi, notları girmemize olanak tanıyan bir fonksiyon daha yazalım.

Bu noktada getAverage fonksiyonu içerisine bir fonksiyon ve 3 sınav notu alacak. Sonrasında bunu döndürecek. Ancak, alacağı fonksiyon zaten getGrades olduğu için ve bu fonksiyon ortalamayı hesapladığı için verdiğimiz değerlerin ortalaması direkt olarak alınacak ve bize sonuç döndürülecek.

print(getAverage) dedikten sonra ilk önce func argümanının karşılığını getGrades olarak veriyorum. Sonrasında da 3 adet sınav notu giriyorum. Kodu çalıştırınca karşımıza doğru bir sonuç getirdiğini görebiliyoruz.

Fonksiyonlar hakkındaki bu blogları anlaması oldukça zor gelebilir. Bu noktada yapmanız gereken tek şey pratik yapmak, kendi örneklerinizi yaratmaktır.


Yayınlanma Tarihi: 2023-01-01 12:15:12

Son Düzenleme Tarihi: 2023-01-02 19:57:19