Dart Programlama - Typedef
Bir typedefveya bir işlev türü takma ad, bellek içindeki çalıştırılabilir koda işaretçiler tanımlamaya yardımcı olur. Basitçe birtypedef bir işleve başvuran bir işaretçi olarak kullanılabilir.
Aşağıda verilen uygulama adımları typedefs Dart programında.
Step 1: Defining a typedef
Bir typedefbelirli işlevlerin eşleşmesini istediğimiz bir işlev imzasını belirtmek için kullanılabilir. Bir işlev imzası, bir işlevin parametreleri (türleri dahil) tarafından tanımlanır. Dönüş türü, işlev imzasının bir parçası değildir. Sözdizimi aşağıdaki gibidir.
typedef function_name(parameters)
Step 2: Assigning a Function to a typedef Variable
Değişken typedef ile aynı imzaya sahip herhangi bir işlevi işaret edebilir typedef. Bir fonksiyona bir işlev atamak için aşağıdaki imzayı kullanabilirsiniz.typedef değişken.
type_def var_name = function_name
Step 3: Invoking a Function
typedefdeğişken işlevleri çağırmak için kullanılabilir. İşte bir işlevi nasıl çağırabileceğiniz -
var_name(parameters)
Misal
Şimdi daha fazlasını anlamak için bir örnek alalım typedef Dart'ta.
İlk önce bir tanımlayalım typedef. Burada bir fonksiyon imzası tanımlıyoruz. İşlev, türün iki giriş parametresini alacaktırinteger. Dönüş türü, işlev imzasının bir parçası değildir.
typedef ManyOperation(int firstNo , int secondNo); //function signature
Daha sonra fonksiyonları tanımlayalım. Aynı fonksiyon imzasına sahip bazı fonksiyonları tanımlayın.ManyOperation typedef.
Add(int firstNo,int second){
print("Add result is ${firstNo+second}");
}
Subtract(int firstNo,int second){
print("Subtract result is ${firstNo-second}");
}
Divide(int firstNo,int second){
print("Add result is ${firstNo/second}");
}
Son olarak, işlevi aracılığıyla çağıracağız typedef. ManyOperations türünde bir değişken bildirin. İşlev adını bildirilen değişkene atayın.
ManyOperation oper ;
//can point to any method of same signature
oper = Add;
oper(10,20);
oper = Subtract;
oper(30,20);
oper = Divide;
oper(50,5);
operdeğişken, iki tamsayı parametresi alan herhangi bir yöntemi işaret edebilir. Addfonksiyonun referansı değişkene atanır. Yazı tipleri çalışma zamanında işlev referanslarını değiştirebilir
Şimdi tüm parçaları bir araya getirelim ve tüm programı görelim.
typedef ManyOperation(int firstNo , int secondNo);
//function signature
Add(int firstNo,int second){
print("Add result is ${firstNo+second}");
}
Subtract(int firstNo,int second){
print("Subtract result is ${firstNo-second}");
}
Divide(int firstNo,int second){
print("Divide result is ${firstNo/second}");
}
Calculator(int a, int b, ManyOperation oper){
print("Inside calculator");
oper(a,b);
}
void main(){
ManyOperation oper = Add;
oper(10,20);
oper = Subtract;
oper(30,20);
oper = Divide;
oper(50,5);
}
Program aşağıdakileri üretmelidir output -
Add result is 30
Subtract result is 10
Divide result is 10.0
Note - Yukarıdaki kod bir hatayla sonuçlanacaktır. typedef değişken, farklı bir işlev imzasına sahip bir işlevi göstermeye çalışır.
Misal
Typedefsbir işleve parametre olarak da geçirilebilir. Aşağıdaki örneği düşünün -
typedef ManyOperation(int firstNo , int secondNo); //function signature
Add(int firstNo,int second){
print("Add result is ${firstNo+second}");
}
Subtract(int firstNo,int second){
print("Subtract result is ${firstNo-second}");
}
Divide(int firstNo,int second){
print("Divide result is ${firstNo/second}");
}
Calculator(int a,int b ,ManyOperation oper){
print("Inside calculator");
oper(a,b);
}
main(){
Calculator(5,5,Add);
Calculator(5,5,Subtract);
Calculator(5,5,Divide);
}
Aşağıdakileri üretecek output -
Inside calculator
Add result is 10
Inside calculator
Subtract result is 0
Inside calculator
Divide result is 1.0