CoderMrWu

生活诚可期,爱情价更高!

Dart函数

函数是可读,可维护和可重用代码的构建块。函数是一组用于执行特定任务的语句。函数将程序组织成逻辑代码块。一旦定义,可以调用函数来访问代码。这使得代码可以重用。此外,函数可以轻松读取和维护程序的代码。

1、简介

函数声明告诉编译器函数的名称,返回类型和参数。函数定义提供函数的实际主体。

(1) 函数定义

函数定义指定特定任务的执行方式。在使用函数之前,必须先定义它。定义标准函数的语法如下:

function_name(){
// 执行程序
}
或者
void function_name(){
// 执行程序
}

示例

// 函数
prints(value){
print(value);
}

(2) 调用函数

必须调用函数才能执行函数代码,此过程称为函数调用。

语法

function_name();

示例

void main(List<String> args) {
// 调用函数
prints('value');
}

// 函数
prints(value){
print(value);
}

(3)函数返回值

函数也可以将值与控制一起返回给调用者。

语法

return_type function_name(){};

示例

void main(List<String> args) {
// 调用函数
print(sum(13, 25));
}
// 有返回值的函数
int sum(int i,int j){
return i + j;
}

(4)参数化函数

参数是一种将值传递给函数的机制。

语法

function_name(data_type param_1, data_type param_2,...){}

示例

void main(List<String> args) {
// 13,25 为实参
print(sum(13, 25));
}
// i,j 为形参
int sum(int i,int j){
return i + j;
}
2、可选参数

当函数执行时不需要强制传递参数时,可使用可选参数。通过在其名称后附加问号,可以将参数标记为可选。可选参数应设置为函数中的最后一个参数。

在Dart中有三种可选参数:

(1) 可选位置参数

要指定可选的位置参数,请使用方括号[]

语法

void function_name(param1, [optional_param_1, optional_param_2]) { }

如果未传递可选参数值,则将其设置为NULL

示例

void main(List<String> args) {
// 调用函数
print(sum(13, 25));
print(sum(13, 25,23));
}

// 方法一:
int sum(int i,int j,[int z]){
// 判断可选参数是否为空,为空就赋初值
if(z.toString() == "null"){
z = 0;
}
return i + j + z;
}

// 方法二:
int sum(int i,int j,[int z = 0]){
return i + j + z;
}

(2) 可选的命名参数

与位置参数不同,必须在传递值时指定参数名称。花括号{}可用于指定可选的命名参数。

语法:声明函数

void function_name(a, {optional_param1, optional_param2}) { }

语法:调用函数

function_name(optional_param:value, …);

示例代码:

void main(List<String> args) {
// 调用函数
print(sum(13, 25));
print(sum(13, 25,x:23,y:20));
}

int sum(int i,int j,{x=0,y=0}){
return i + j + x+y;
}
// 打印结果: 38 81

(3) 带有默认值的可选参数

默认情况下,还可以为函数参数指定值。但是,这些参数也可以显式传递值。

void main(List<String> args) {
// 调用函数
print(sum(13, 25));
print(sum(13, 25,x:23,y:20));
}

// 设置 可选参数x,y的值都为0
int sum(int i,int j,{x=0,y=0}){
return i + j + x+y;
}
// 打印结果: 38 81
3、递归函数

递归是一种通过对函数自身重复调用直到它到达结果来迭代操作的技术。当需要使用循环内的不同参数重复调用相同的函数时,最好应用递归。

void main(List<String> args) {
print(factorial(6));
}

factorial(number){
if(number <= 0){
return 1;
}else{
// 递归调用
return(number * factorial(number-1));
}
}
4、Lambda函数

Lambda函数是表示函数的简洁机制。这些函数也称为箭头函数。

语法

[return_type]function_name(parameters)=>expression;

示例:

void main() { 
printMsg(); 
print(test()); 
} 
printMsg()=>
print("hello");

int test()=>123;

// 打印结果: hello 123
点赞