函数是可读,可维护和可重用代码的构建块。函数是一组用于执行特定任务的语句。函数将程序组织成逻辑代码块。一旦定义,可以调用函数来访问代码。这使得代码可以重用。此外,函数可以轻松读取和维护程序的代码。
函数声明告诉编译器函数的名称,返回类型和参数。函数定义提供函数的实际主体。
| 编号 | 函数 | 描述 | 
|---|---|---|
| 1 | 定义函数 | 函数定义指定特定任务的执行方式。 | 
| 2 | 调用函数 | 必须调用函数才能执行它。 | 
| 3 | 函数返回值 | 函数也可以将值与控制一起返回给调用者。 | 
| 4 | 参数化函数 | 参数是一种将值传递给函数的机制。 | 
可选参数
当函数执行时不需要强制传递参数时,可使用可选参数。通过在其名称后附加问号,可以将参数标记为可选。可选参数应设置为函数中的最后一个参数。
在Dart中有三种可选参数 -
| 编号 | 函数 | 描述 | 
|---|---|---|
| 1 | 可选的位置参数 | 要指定可选的位置参数,请使用方括号 []。 | 
| 2 | 可选的命名参数 | 与位置参数不同,必须在传递值时指定参数的名称。花括号 {}可用于指定可选的命名参数。 | 
| 3 | 带有默认值的可选参数 | 默认情况下,还可以为函数参数指定值。但是,这些参数也可以显式传递值。 | 
Dart递归函数
递归是一种通过对函数自身重复调用直到它到达结果来迭代操作的技术。当需要使用循环内的不同参数重复调用相同的函数时,最好应用递归。
示例
void main() { 
   print(factorial(6));
}  
factorial(number) { 
   if (number <= 0) {         
      // termination case 
      return 1; 
   } else { 
      return (number * factorial(number - 1));    
      // function invokes itself 
   } 
}
执行上面示例代码,得到以下结果 -
720
Lambda函数
Lambda函数是表示函数的简洁机制。这些函数也称为箭头函数。
语法
[return_type]function_name(parameters)=>expression;
示例
void main() { 
   printMsg(); 
   print(test()); 
}  
printMsg()=>
print("hello"); 
int test()=>123;                       
// returning function
执行上面示例代码,得到以下结果 -
hello 123
