推荐答案
在 Dart 中,函数的定义和调用非常简单。以下是一个基本的示例:
-- -------------------- ---- ------- -- ------ ---- ------------ ----- - ------------- --------- - ---- ------ - -- ---- --------------- -
函数定义
- 使用
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 提供了灵活且强大的函数定义和调用机制。