📅  最后修改于: 2023-12-03 14:40:36.754000             🧑  作者: Mango
函数是一种可重用代码块,并且能够执行特定任务或计算结果。在 Dart 中,函数是一等公民,意味着可以将函数分配给变量、传递函数作为参数,并从函数中返回函数。
Dart 中的函数定义如下所示:
返回类型 函数名(参数类型 参数名, ...) {
函数体
}
其中,返回类型
表示函数返回的值类型,如果没有返回值则使用关键字 void
;函数名
是函数的名称;参数类型
和 参数名
表示函数的输入参数。
例如,下面的代码定义了一个不带参数的函数,该函数返回一个字符串:
String greet() {
return "Hello, world!";
}
可以使用 null
关键字来表示不返回任何值的函数。以下是一个示例,其中函数不返回任何值:
void printMessage(String message) {
print(message);
}
在 Dart 中,用函数名调用函数即可执行函数体中的代码。例如,要调用上面定义的函数 greet()
,请在代码中使用以下代码行:
print(greet());
将会输出以下内容:
Hello, world!
要调用另一个函数,例如 printMessage()
,请使用以下代码行:
printMessage("Hello, world!");
将会输出以下内容:
Hello, world!
Dart 也支持定义匿名函数。匿名函数可以在必要时被直接声明和调用,而不必将其赋值给变量或传递给函数。
以下是一个使用匿名函数定义的示例,该函数打印并返回给定字符串的大写版本:
() {
String message = "Hello, world!";
print(message.toUpperCase());
return message.toUpperCase();
}()
在 Dart 中,函数也可以被传递给其他函数作为参数。例如,下面的代码定义了一个接受函数作为参数的 process
函数:
void process(String message, Function processFunction) {
print(processFunction(message));
}
可以将 greet()
函数传递给 process
函数,如下所示:
process(greet(), (String message) => message.toLowerCase());
将会输出以下内容:
hello, world!
在 Dart 中,函数也可以返回其他函数。例如,下面的代码定义了一个返回函数的 createFunction
函数:
Function createFunction() {
return () {
print("Hello, world!");
};
}
可以使用以下代码行返回该函数,并将其分配给变量 myFunction
:
Function myFunction = createFunction();
可以使用以下代码行调用 myFunction()
函数:
myFunction();
将会输出以下内容:
Hello, world!
在 Dart 中,函数是一等公民,可以将它们分配给变量、传递函数作为参数,并从函数中返回函数。函数是可重用代码块,并且能够执行特定任务或计算结果。您可以定义具有参数的函数,也可以定义不返回任何值的函数。如果要使用匿名函数,请将其直接声明和调用。