Pemrograman Dart - Typedef

SEBUAH typedef, atau alias tipe-fungsi, membantu menentukan petunjuk ke kode yang dapat dieksekusi di dalam memori. Sederhananya, atypedef dapat digunakan sebagai penunjuk yang mereferensikan suatu fungsi.

Diberikan di bawah ini adalah langkah-langkah untuk diterapkan typedefs dalam program Dart.

Step 1: Defining a typedef

SEBUAH typedefdapat digunakan untuk menentukan tanda tangan fungsi yang kita ingin fungsi spesifiknya cocok. Tanda tangan fungsi ditentukan oleh parameter fungsi (termasuk tipenya). Jenis kembalian bukan merupakan bagian dari tanda tangan fungsi. Sintaksnya adalah sebagai berikut.

typedef function_name(parameters)

Step 2: Assigning a Function to a typedef Variable

Variabel dari typedef dapat menunjuk ke fungsi apa pun yang memiliki tanda tangan yang sama seperti typedef. Anda dapat menggunakan tanda tangan berikut untuk menetapkan fungsi ketypedef variabel.

type_def  var_name = function_name

Step 3: Invoking a Function

Itu typedefvariabel dapat digunakan untuk menjalankan fungsi. Inilah cara Anda dapat memanggil suatu fungsi -

var_name(parameters)

Contoh

Sekarang mari kita ambil contoh untuk memahami lebih lanjut typedef di Dart.

Pertama, mari kita definisikan a typedef. Di sini kami mendefinisikan tanda tangan fungsi. Fungsi ini akan mengambil dua parameter input dari tipe tersebutinteger. Tipe pengembalian bukan bagian dari tanda tangan fungsi.

typedef ManyOperation(int firstNo , int secondNo); //function signature

Selanjutnya, mari kita tentukan fungsinya. Tentukan beberapa fungsi dengan tanda tangan fungsi yang sama seperti padaManyOperation 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}"); 
}

Terakhir, kami akan memanggil fungsi melalui typedef. Deklarasikan variabel dari jenis ManyOperations. Tetapkan nama fungsi ke variabel yang dideklarasikan.

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);

Itu opervariabel dapat menunjuk ke metode apapun yang membutuhkan dua parameter integer. ItuAddreferensi fungsi ditugaskan ke variabel. Typedefs dapat mengganti referensi fungsi saat runtime

Mari kita sekarang menggabungkan semua bagian dan melihat program lengkapnya.

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 tersebut harus menghasilkan yang berikut ini output -

Add result is 30 
Subtract result is 10 
Divide result is 10.0

Note - Kode diatas akan menghasilkan error jika typedef variabel mencoba menunjuk ke fungsi dengan tanda tangan fungsi yang berbeda.

Contoh

Typedefsbisa juga dilewatkan sebagai parameter ke suatu fungsi. Perhatikan contoh berikut -

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); 
}

Ini akan menghasilkan yang berikut ini output -

Inside calculator 
Add result is 10 
Inside calculator 
Subtract result is 0 
Inside calculator 
Divide result is 1.0