1. 函数概念
函数是编程中的基本构建块之一,它是一段可以重复使用的代码
,用于执行特定的任务或计算
。函数通常接收输入(参数)
,执行一些操作
,然后返回输出(结果)
。
2. 函数类型
- 无参数,无返回值
- 有参数,无返回值
- 无参数,有返回值
- 有参数,有返回值
下面分别一一举例列出:
// 1. 无参, 无返回值
void fun1() {
print("无参数,无返回值");
}
// 2. 有参数,无返回值
void fun2(String name) {
print("有参数${name},无返回值");
}
// 3. 无参数,有返回值
String fun3() {
return "无参数,有返回值";
}
// 4. 有参数,有返回值
String fun4(String name) {
return "有参数${name},有返回值";
}
3. 函数参数说明
参数是指的是将值传递给函数的变量。参数可以是位置参数、命名参数、默认参数和可选参数。
4. 位置参数
位置参数是指在函数调用时按照顺序传递给函数的参数。位置参数可以在函数定义时指定参数名,但是在函数调用时不需要指定参数名。
void add(int a, int b) {
print("$a + $b = ${a + b}");
}
void main(){
add(1,2);
}
我们还可以为位置参数提供默认值,有时候我们允许只传递一个值. 或者默认值是固定的等等.
void student(String name, Int age, [String sex = "男"]) {
print("$name, $age, $sex");
}
void circleArea(double r, [double pi = 3.1415926]) {
print("$pi * $r * $r = ${pi * r * r}");
}
void main(){
student("小明", 18);
student("小明", 18, "女");
circleArea(3.0);
}
5. 命名参数
命名参数是指在函数调用时指定参数名
来传递给函数的参数
。命名参数可以在函数定义时指定参数名,并且在函数调用时需要指定参数名
。
void dog(String name, {String color}){
print("$name, $color");
}
同时你可以通过`require` 关键字来指定参数是否必须传递
```dart
void dog(String name, {required String color}){
print("$name, $color");
}
在上方的案例当中, color
参数是必须传递的.
另外就是在命名参数当中,你无需
再像位置参数
那样按照顺序传递参数
.
6. 匿名函数
匿名函数(也称为 Lambda 函数或闭包)是一种没有名称的函数。它们通常用于简化代码,尤其是在需要将函数作为参数传递时。
去掉返回类型和函数名,这个函数就叫做匿名函数。
语法:
(){}
例如:
var myFunction = (int a, int b) {
return a + b;
};
var multiply = (int a, int b) => a * b;
print(multiply(2, 3)); // 输出 6
7. 箭头函数
在 Dart 中,箭头函数(Arrow Functions)是一种简洁的语法,用于定义只包含单个表达式的函数。它们可以使代码更加简洁和可读。 语法:
returnType functionName(parameters) => expression;
示例:
int add(int a, int b) => a + b;
还有无参数的情况下
var greet = () => 'Hello, Dart!';
void main() {
print(greet()); // 输出 Hello, Dart!
}
注意事项:
- 箭头函数只能用于单个表达式。如果需要执行多条语句,应该使用常规函数定义。
- 箭头函数的返回值是表达式的结果,无需显式使用 return 关键字。