📜  Dart – 函数

📅  最后修改于: 2021-09-02 05:55:05             🧑  作者: Mango

函数是一组接受输入、进行一些特定计算并产生输出的语句。当某些语句在程序中重复出现并创建一个函数来替换它们时,就会创建函数。函数可以很容易地将复杂的程序分成更小的子组,并增加程序的代码可重用性。

在Dart定义函数:

Dart为我们提供了在其程序中使用函数的便利。

句法:

return_type function_name ( parameters ) {
   // Body of function
   return value;
}

在上面的语法中:

  • function_name定义函数的名称。
  • return_type定义了将要输出的数据类型。
  • return value定义要从函数返回的值。

该函数被称为:
句法:

function_name (argunment_list);

在上面的语法中:

  • function_name定义函数的名称。
  • argunment list是函数需要的参数列表。

示例 1: Dart的完整函数

int add(int a, int b)
{
    // Creating function
    int result = a + b;
    // returing value result
    return result;
}
  
void main()
{
    // Calling the function
    var output = add(10, 20);
  
    // Printing output
    print(output);
}

输出:

30

注意:您必须注意,尽管两个函数的参数不同,但它们不能具有相同的函数名称。

实施例2:无参数和返回值的函数。

void GFG()
{
    // Creating function
    print("Welcome to GeeksForGeeks");
}
  
void main()
{
    // Calling the function
    GFG();
}

输出:

Welcome to GeeksForGeeks

注意:您必须注意,您也可以通过return语句直接返回字符串或整数或任何表达式的输出。

带有可选参数的函数:

Dart中还有可选参数系统,允许用户在函数内部给出一些可选参数。

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 menditory 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.

例子:

void gfg1(int g1, [ int g2 ])
{
    // Creating function 1
    print("g1 is $g1");
    print("g2 is $g2");
}
  
void gfg2(int g1, { int g2, int g3 })
{
    // Creating function 1
    print("g1 is $g1");
    print("g2 is $g2");
    print("g3 is $g3");
}
  
void gfg3(int g1, { int g2 : 12 })
{
    // Creating function 1
    print("g1 is $g1");
    print("g2 is $g2");
}
  
void main()
{
    // Calling the function with optional parameter
    print("Calling the function with optional parameter:");
    gfg1(01);
  
    // Calling the function with Optional Named parameter
    print("Calling the function with Optional Named parameter:");
    gfg2(01, g3 : 12);
  
    // Calling function with default valued parameter
    print("Calling function with default valued parameter");
    gfg3(01);
}

输出:

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

Dart的递归函数:

递归函数是那些函数调用自身的函数。这是避免重复调用同一个函数来获取输出的好方法。

示例:斐波那契数列的递归函数。

/// Computes the nth Fibonacci number.
int fibonacci(int n)
{
    // This is recursive function as it calls itself
    return n < 2 ? n : (fibonacci(n - 1) + fibonacci(n - 2));
}
  
void main()
{
    var i = 20; // input
    print('fibonacci($i) = ${fibonacci(i)}');
}

输出:对于输入为 20

fibonacci(20) = 6765

Dart的Lambda函数:

它们是在Dart中表示函数的简短方式。它们也被称为箭头函数。但您应该注意,使用 lambda函数,您只能为一个表达式返回值。

示例: dart的Lambda函数。

// Lambda function in Dart
  
void gfg() = > print("Welcome to GeeksforGeeks");
  
void main()
{
    gfg(); // Calling Lambda function
}

输出:

Welcome to GeeksforGeeks