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