学习内容:
Dart 函数(普通函数、匿名函数、可选参数)
控制流(
if-else/for/while/switch)实践任务:
写一个函数:计算两个数的和(支持可选参数,如默认加 0)
写一个循环:打印 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,因为存在精度问题。