30天计划第2天-Dart函数与控制流

-
-
2025-10-17 11:30
  • 学习内容

    1. Dart 函数(普通函数、匿名函数、可选参数)

    2. 控制流(if-else/for/while/switch

  • 实践任务

    1. 写一个函数:计算两个数的和(支持可选参数,如默认加 0)

    2. 写一个循环:打印 1-10 的偶数,并用 switch 判断数字是否为 5 的倍数

一、Dart函数:定义与使用

Dart函数分为:普通函数、匿名函数、可选参数

1. 普通函数:有命名、可复用

核心语法

返回值类型 函数名(参数类型 参数1, 参数类型 参数2, ...) {
	// 函数体
	return 返回值;
}

返回值类型:int/String/bool等具体类型或者void。

2. 匿名函数:无命名,临时使用 

语法:

(参数列表) {
    // 函数体
}

例子1:作为forEach的参数

void main()
{
  List<String> fruits = ['苹果', '山竹', '香蕉'];

  // forEach接收一个匿名函数,参数fruit是fruits的每一个元素
  fruits.forEach((String fruit) {
    print(fruit);
  });

  // 简化写法:函数体只有一行时,可省略{}和类型标注,交给Dart自动推导
  fruits.forEach((fruit) => print(fruit));
}

例子2:赋值给变量(临时使用)

把匿名函数赋值给变量,需要指定变量的类型。

void main()
{
  // 定义变量:类型是“(int, int) => int”,值是匿名函数
  int Function(int, int) multipy = (a, b) {
    return a * b;
  };

  int ret = multipy(3, 4);
  print(ret);
}

3. 可选参数:可传可不传的参数

Dart支持两种可选参数:位置可选参数、命名可选参数。

(1)位置可选参数:按顺序传参,用[ ]包裹

语法:

函数名(必选参数, [可选参数1, 可选参数2, ...])

特点:

    调用时必须按照参数定义的顺序传,可选参数必须放在必选参数后。

    可给可选参数设置默认值。

    不可以既不传值,也不设置默认值。

(2)命名可选参数:按名字传参,用{ }包裹

语法:

函数名(必选参数, {可选参数1, 可选参数2, ...})

特点:

调用时必须带参数名,顺序可以任意(因为按名字匹配)。

可以设置默认值。

注意:这两种可选参数的方法如果要混用,一定要保证位置可选参数在命名可选参数之前。

二、Dart控制流:控制代码执行顺序

核心:if-else、for、while、switch

1. if-else:条件判断

注意与其他语言的区别:Dart不允许非bool类型自动转bool,例如:if(1),这是不被允许的。

2. for循环

Dart有两种for循环:普通for循环、for-in循环(遍历集合)

(1)普通for循环

语法:

for (初始变化量; 循环条件; 更新变量)
{
	// 循环体;
}

(2)for-in循环:遍历列表/集合(无需关心索引)

语法:

for (变量 in 集合)
{
	// 循环体;
}

3. while循环

(1)while

(2)do…while

4. switch多条件匹配

switch无法支持double,因为存在精度问题。

 


目录