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