Dart: Callable class

Dart: Callable class

Dart allows the user to create a callable class which allows the instance of the class to be called as a function. To allow an instance of your Dart class to be called like a function, implement the call() method.

Syntax:

class class_name {
  ... // class content

  return_type call ( parameters ) {
    ... // call function content
  }

}

In the above syntax, we can see that to create a callable class we have to define a call method with a return type and parameters within it.

Example:

Example1: Single callable class

class Student {  
  String call(String name, int age) {  
              return('Student name is $name and Age is $age');  

           }  
}  
void main() {  
   Student stu = new Student();  
   var msg = stu('Ghoghari',21);     // Class instance called like a function.  
   print('Dart Callable class');  
   print(msg);  
}

Output

Dart Callable class
Student name is Ghoghari and Age is 21

Explanation:

In the above code, We defined a call() function in the class Student that takes two arguments String name, integer age and return a message with this information. Then, we have created the object of class Student and called it like a function.

var msg = stu('Ghoghari',21);

Example2: Multiple callable class

class Student {  
  String call(String name, int age) {  
              return('Student name is $name and Age is $age');  

           }  
}  

class Employee {  
  int call(int empid, int age) {  
              return('Employee id is ${empid} and Age is ${age}');  

           }  
}  

void main() {  
   Student stu = new Student();  

   Employee emp = new Employee();  

   var msg = stu('Jinali',21);  // Class instance called like a function.  
   var msg2 = emp(101,23);   // Class instance called like a function.  
   print('Dart Callable class');  
   print(msg);  
   print(msg2);  
}

Output

Dart Callable class
Student name is Jinali and Age is 21
Employee id is 101 and Age is 23

Explanation:

In the above code, we defined two callable functions in class Student and class Employee. The Employee class call() function accepts two parameters as String empid and int age. We called instances of both classes as callable functions.

 var msg = stu('Jinali',21);  
 var msg2 = emp(101,23);