11. Dart 函数、箭头函数、匿名函数、立即执行函数及闭包讲解
AI 概述
一、函数的基本使用1、函数的声明和使用2、可选参数 和 默认参数3、命名参数4、函数作为参数二、箭头函数三、匿名函数四、立即执行函数五、闭包
一、函数的基本使用
1、函数的声明和使用
建议所有函数都声明返回类型,没有返回值声明 void 类型。
void main() {
void printTitle(String title) {
...
目录
一、函数的基本使用
1、函数的声明和使用
建议所有函数都声明返回类型,没有返回值声明 void 类型。
void main() {
void printTitle(String title) {
print('The title : ${title.toString()}');
}
String getName(String firstName, String lastName) {
String res = 'my name is ${firstName}-${lastName}';
printTitle(res);
return res;
}
int getSum(int num) {
int sum = 0;
for (int i = 1; i <= num; i++) {
sum += i;
}
return sum;
}
printTitle(getName('技术博客', 'mybj'));
print(getSum(6));
print(getSum(100));
print(getSum(50));
}
运行结果:
The title : my name is 技术博客-mybj The title : my name is 技术博客-mybj 21 5050 1275
2、可选参数 和 默认参数
dart 中声明可选参数,需要在参数列表声明 List 格式的参数列表,表明是可选的。
如果要声明参数的默认值,可以直接在参数后面赋值。
void main() {
// 可选参数 & 默认参数
void printInfo(String name, [int? age, String sex = '男']) {
if (age == null) {
print('my name is ${name}, sex is ${sex}');
} else {
print('my name is ${name}, age is ${age}, sex is ${sex}');
}
}
printInfo('mybj');
printInfo('mybj', 20);
printInfo('mybj', 20, '女');
}
运行结果:
my name is mybj, sex is 男 my name is mybj, age is 20, sex is 男 my name is mybj, age is 20, sex is 女
3、命名参数
dart 可以指定参数名称,而不需要传入一个 Map 才能指定名称,这点非常实用,在 flutter 中大多数 widegt 的构造方法中,使用的是命名参数。
// 命名参数
void printInfo2(String name, {int age, String sex = '男'}) {
if(age == null) {
print('my name is ${name}, sex is ${sex}');
} else {
print('my name is ${name}, age is ${age}, sex is ${sex}');
}
}
在 Flutter 中如果参数都使用命名参数,要指定某个参数是必须传递的,则需要通过 @required 注解:
class Test {
final String name;
Test({
@required this.name,
});
}
4、函数作为参数
executeFunction(fn, [args]) {
if (fn != null) {
return fn(args);
}
}
二、箭头函数
void main() {
List l1 = ['前端', '后端'];
l1.forEach((item) {
print(item);
});
l1.forEach((item) => print(item));
}
箭头函数只能有一行,可以省略大括号。
在 map 方法中使用箭头函数:
void main() {
List l1 = [1, 2];
var l2 = l1.map((item) {
return item % 2 == 0 ? item * 2 : item;
});
print(l2.toList()); // [1, 4]
var l3 = l1.map((item) => item % 2 == 0 ? item * 2 : item);
print(l3); // (1, 4)
}
三、匿名函数
void main() {
Function getInfo = (String name, int age, [String sex = '男']) {
print('My name is ${name}, my age is ${age}, my sex is ${sex}');
};
getInfo('mybj', 30);
}
运行结果:
My name is mybj, my age is 30, my sex is 男
四、立即执行函数
void main() {
// 立即执行方法
((name) {
print('my name is ${name}');
})('mybj');
}
运行结果:
my name is mybj
五、闭包
void main() {
// 闭包
Function getA() {
int a = 0;
return () {
a++;
print(a);
};
}
Function b = getA();
b();
b();
}
运行结果:
1 2
以上就是关于 Dart 函数、箭头函数、匿名函数、立即执行函数及闭包讲解的全部内容,下接我们主要讲 Dart 类 Class。
以上关于11. Dart 函数、箭头函数、匿名函数、立即执行函数及闭包讲解的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 11. Dart 函数、箭头函数、匿名函数、立即执行函数及闭包讲解
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 11. Dart 函数、箭头函数、匿名函数、立即执行函数及闭包讲解

微信
支付宝