本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Dart 箭头函数 函数的相互调用
需求: 使用forEach打印下面List里面的数据
普通函数
void main() {
List list = ['苹果', '香蕉', '西瓜'];
list.forEach((item) {
print(item); // 苹果 香蕉 西瓜
});
}
箭头函数
void main() {
list.forEach((value) => print(value)); // 苹果 香蕉 西瓜
list.forEach((value) => {
print(value) // 苹果 香蕉 西瓜
});
}
需求: 修改下面List里面的数据,让数组中大于2的值乘以2
普通函数
代码如下:
void main() {
List list = [4, 1, 2, 3, 4];
var newList = list.map((value) {
if (value > 2) {
return value * 2;
}
return value;
});
print(newList); // (8, 1, 2, 6, 8)
print(newList.toList()); // [8, 1, 2, 6, 8]
}
箭头函数
代码如下:
void main() {
var newList = list.map((value) => value > 2 ? value * 2 : value);
print(newList.toList()); // [8, 1, 2, 6, 8]
}
函数的相互调用
需求:定义一个方法isEvenNumber来判断一个数是否是偶数
代码如下:
void main() {
bool isEVenNumber(int n) {
if (n % 2 == 0) {
return true;
}
return false;
}
}
需求:定义一个方法打印1-n以内的所有偶数
代码如下:
void main() {
printNumber(int n) {
for (var i = 1; i <= n; i++) {
if (isEVenNumber(i)) {
print(i);
}
}
}
printNumber(10); // 2 4 6 8 10
}
Dart 匿名方法 自执行方法 方法的递归
匿名方法
代码如下:
void main() {
var printNum = () {
print(123);
};
printNum(); // 123
}
匿名方法-传参
代码如下:
void main() {
var printNum = (int n) {
print(n + 123);
};
printNum(1); // 124
}
自执行方法
代码如下:
void main() {
(() {
print('我是自执行方法'); // 我是自执行方法
})();
}
自执行方法-传参
代码如下:
void main() {
((int n) {
print(n + 12); // 13
})(1);
}
方法的递归
代码如下:
void main() {
var sum = 1;
fn(int n) {
sum *= n;
if (n == 1) {
return;
}
fn(n - 1);
}
fn(5);
print(sum); // 120
}
通过方法的递归 求1-100的和
代码如下:
void main() {
var sum = 0;
fn(int n) {
sum += n;
if (n == 0) {
return;
}
fn(n - 1);
}
fn(100);
print(sum); // 5050
}