推荐答案
在 Dart 中,函数的定义和调用非常简单。以下是一个基本的示例:
// www.javascriptcn.com code example
// 定义一个函数
void greet(String name) {
print('Hello, $name!');
}
void main() {
// 调用函数
greet('Alice');
}函数定义
- 使用
void关键字表示函数没有返回值。 greet是函数名。(String name)是参数列表,name是参数名,String是参数类型。{ ... }是函数体,包含要执行的代码。
函数调用
- 在
main函数中,通过greet('Alice');调用greet函数,并传递参数'Alice'。
本题详细解读
1. 函数定义
在 Dart 中,函数可以通过以下方式定义:
返回类型 函数名(参数列表) {
// 函数体
}- 返回类型:可以是
void(表示没有返回值)、int、String等具体类型,或者省略(默认为dynamic)。 - 函数名:遵循 Dart 的命名规范,通常使用小驼峰命名法。
- 参数列表:可以包含零个或多个参数,每个参数由类型和名称组成,多个参数用逗号分隔。
2. 函数调用
函数调用通过函数名和传递的参数来完成:
函数名(参数);
- 参数:可以是常量、变量或表达式,类型必须与函数定义中的参数类型匹配。
3. 可选参数
Dart 支持可选参数,分为命名参数和位置参数:
命名参数
使用 {} 包裹参数列表,调用时通过参数名传递值:
void greet({String name, String greeting}) {
print('$greeting, $name!');
}
void main() {
greet(name: 'Alice', greeting: 'Hi');
}位置参数
使用 [] 包裹参数列表,调用时按顺序传递值:
void greet(String name, [String greeting]) {
print('${greeting ?? 'Hello'}, $name!');
}
void main() {
greet('Alice');
greet('Bob', 'Hi');
}4. 默认参数
可以为可选参数设置默认值:
void greet({String name = 'Guest', String greeting = 'Hello'}) {
print('$greeting, $name!');
}
void main() {
greet();
greet(name: 'Alice');
}5. 匿名函数
Dart 支持匿名函数(也称为 lambda 或闭包):
void main() {
var greet = (String name) {
print('Hello, $name!');
};
greet('Alice');
}6. 箭头函数
对于单行函数,可以使用箭头语法简化:
void main() {
var greet = (String name) => print('Hello, $name!');
greet('Alice');
}7. 高阶函数
Dart 支持将函数作为参数传递或返回:
void greet(String name, void Function(String) callback) {
callback(name);
}
void main() {
greet('Alice', (name) => print('Hello, $name!'));
}通过这些方式,Dart 提供了灵活且强大的函数定义和调用机制。