Fonksiyonlara Genel Bakış
Programlama açısından, a functionbelirli bir görevi yerine getiren bir ifade bloğudur. İşlevler verileri kabul eder, işler ve bir sonuç döndürür. Fonksiyonlar, öncelikle yeniden kullanılabilirlik kavramını desteklemek için yazılmıştır. Bir fonksiyon bir kez yazıldığında, aynı kodu tekrar tekrar yazmak zorunda kalmadan kolayca çağrılabilir.
Farklı işlevsel diller, bir işlevi yazmak için farklı sözdizimi kullanır.
Bir Fonksiyon Yazmanın Ön Koşulları
Bir fonksiyon yazmadan önce, bir programcı aşağıdaki noktaları bilmelidir -
Fonksiyonun amacı programcı tarafından bilinmelidir.
Fonksiyonun algoritması programcı tarafından bilinmelidir.
Fonksiyonlar veri değişkenleri ve hedefleri programcı tarafından bilinmelidir.
İşlev verileri, kullanıcı tarafından çağrılan programcı tarafından bilinmelidir.
Bir Fonksiyonun Akış Kontrolü
Bir işlev "çağrıldığında", program işlevi yürütmek için denetimi "aktarır" ve "denetim akışı" aşağıdaki gibidir -
Program, bir "fonksiyon çağrısı" içeren ifadeye ulaşır.
Fonksiyonun içindeki ilk satır yürütülür.
Fonksiyonun içindeki tüm ifadeler yukarıdan aşağıya doğru yürütülür.
İşlev başarıyla yürütüldüğünde, kontrol başladığı ifadeye geri döner.
İşlev tarafından hesaplanan ve döndürülen herhangi bir veri, orijinal kod satırında işlevin yerine kullanılır.
Bir Fonksiyonun Sözdizimi
Bir fonksiyonun genel sözdizimi aşağıdaki gibidir -
returnType functionName(type1 argument1, type2 argument2, . . . ) {
// function body
}
C ++ 'da bir Fonksiyon Tanımlama
Nesne yönelimli bir programlama dili olan C ++ 'da bir fonksiyonun nasıl tanımlanabileceğini anlamak için bir örnek alalım. Aşağıdaki kod, iki sayı ekleyen ve sonucunu çıktı olarak veren bir işleve sahiptir.
#include <stdio.h>
int addNum(int a, int b); // function prototype
int main() {
int sum;
sum = addNum(5,6); // function call
printf("sum = %d",sum);
return 0;
}
int addNum (int a,int b) { // function definition
int result;
result = a + b;
return result; // return statement
}
Aşağıdaki çıktıyı üretecektir -
Sum = 11
Erlang'da bir Fonksiyon Tanımlama
İşlevsel bir programlama dili olan Erlang'da aynı işlevin nasıl tanımlanabileceğini görelim.
-module(helloworld).
-export([add/2,start/0]).
add(A,B) ->
C = A + B,
io:fwrite("~w~n",[C]).
start() ->
add(5,6).
Aşağıdaki çıktıyı üretecektir -
11
İşlev Prototipi
Bir işlev prototipi, işlevin dönüş tipi, işlev adı ve bağımsız değişkenler listesini içeren bir bildirimi. İşlev gövdesi olmayan işlev tanımına benzer.
For Example - Bazı programlama dilleri işlev prototiplemeyi destekler ve bazıları desteklemez.
C ++ 'da,' sum 'fonksiyonunun fonksiyon prototipini şöyle yapabiliriz -
int sum(int a, int b)
Note - Python, Erlang, vb. Gibi programlama dilleri, işlev prototiplemeyi desteklemez, tam işlevi bildirmemiz gerekir.
İşlev prototipinin kullanımı nedir?
İşlev prototipi, işlev çağrıldığında derleyici tarafından kullanılır. Derleyici, doğru dönüş türünü, uygun bağımsız değişkenler listesinin iletildiğinden ve dönüş türünün doğru olduğundan emin olmak için kullanır.
İşlev İmzası
Bir işlev imzası, parametre sayısının, parametrelerin veri türünün ve görünüm sırasının benzer sırada olması gereken işlev prototipine benzer. Örneğin -
void Sum(int a, int b, int c); // function 1
void Sum(float a, float b, float c); // function 2
void Sum(float a, float b, float c); // function 3
Function1 ve Function2'nin farklı imzaları vardır. Function2 ve Function3 aynı imzalara sahiptir.
Note - Sonraki bölümlerde tartışacağımız işlev aşırı yükleme ve İşlev geçersiz kılma, işlev imzaları kavramına dayanmaktadır.
Bir sınıfın aynı ada ancak farklı imzalara sahip birden çok işlevi olduğunda işlev aşırı yüklemesi mümkündür.
Türetilmiş bir sınıf işlevi, temel sınıfıyla aynı ada ve imzaya sahip olduğunda işlev geçersiz kılma mümkündür.