Function is a set of statements that take inputs, do some specific computation and produces output. Functions are created when certain statements are repeatedly occurring in the program and a function is created to replace them. Functions make it easy to divide the complex program into smaller sub-groups and increase the code reusability of the program.
Defining the function in Dart:
Dart provides us with the facility of using functions in its program.
Syntax:
return_type function_name ( parameters ) {
// Body of function
return value;
}
In the above syntax:
- function_name defines the name of the function.
- return_type defines the datatype in which output is going to come.
- return value defines the value to be returned from the function.
The function is called as:
Syntax:
function_name (argument_list);
In the above syntax:
- function_name defines the name of the function.
- argument list is the list of the parameter that the function requires.
Example 1: Complete function in Dart
Dart
int add( int a, int b)
{
int result = a + b;
return result;
}
void main()
{
var output = add(10, 20);
print(output);
}
|
Output:
30
Note: You must note that two functions can’t have the same function name although they differ in parameters.
Example 2: Function without parameter and return value.
Dart
void GFG()
{
print( "Welcome to GeeksForGeeks" );
}
void main()
{
GFG();
}
|
Output:
Welcome to GeeksForGeeks
Note: You must note that you can also directly return string or integer or any output of expression through the return statement.
Functions with Optional Parameter:
There are also optional parameter system in Dart which allows user to give some optional parameters inside the function.
Sr. No. | Parameter | Description |
---|
1. | Optional Positional Parameter | To specify it use square (‘[ ]’) brackets |
2. | Optional Named parameter | When we pass this parameter it is mandatory to pass it while passing values. It is specify by curly(‘{ }’) brackets. |
3. | Optional parameter with default values | Here parameters are assign with default values. |
Example:
Dart
void gfg1( int g1, [ var g2 ])
{
print( "g1 is $g1" );
print( "g2 is $g2" );
}
void gfg2( int g1, { var g2, var g3 })
{
print( "g1 is $g1" );
print( "g2 is $g2" );
print( "g3 is $g3" );
}
void gfg3( int g1, { int g2 : 12 })
{
print( "g1 is $g1" );
print( "g2 is $g2" );
}
void main()
{
print( "Calling the function with optional parameter:" );
gfg1(01);
print( "Calling the function with Optional Named parameter:" );
gfg2(01, g3 : 12);
print( "Calling function with default valued parameter" );
gfg3(01);
}
|
Output:
Calling the function with optional parameter:
g1 is 1
g2 is null
Calling the function with Optional Named parameter:
g1 is 1
g2 is null
g3 is 12
Calling function with default valued parameter
g1 is 1
g2 is 12
Recursive Function in Dart:
The recursive function is those functions in which function calls itself. It is a good way to avoid repeatedly calling the same function to get the output.
Example: Recursive function for fibonacci series.
Dart
int fibonacci( int n)
{
return n < 2 ? n : (fibonacci(n - 1) + fibonacci(n - 2));
}
void main()
{
var i = 20;
print( 'fibonacci($i) = ${fibonacci(i)}' );
}
|
Output: For input as 20
fibonacci(20) = 6765
Lambda Function in Dart:
They are the short way of representing a function in Dart. They are also called arrow function. But you should note that with lambda function you can return value for only one expression.
Example: Lambda function in dart.
Dart
void gfg() => print( "Welcome to GeeksforGeeks" );
void main()
{
gfg();
}
|
Output:
Welcome to GeeksforGeeks