//使用forEach 打印下面的List里面的数据
List list = ["西瓜", "苹果", "香蕉"];
list.forEach((value) {
print(value);
});
//箭头函数1
list.forEach((value) => print(value)); //只能一句
//箭头函数2
list.forEach(
(value) =>
{
print(value), //只能一句
},
);
//修改下面List里面的数据,让数组大于2的值乘以2
List list1 = [1, 2, 3, 4];
var newList = list1.map((value) {
if (value > 2) {
return value * 2;
} else {
return value;
}
});
print(newList); //(1, 2, 6, 8)
print(newList.toList()); //[1, 2, 6, 8]
通过箭头函数来实现
var newList1 = list1.map((value) => value > 2 ? value * 2 : value);
print(newList1); //(1, 2, 6, 8)
//定义一个方法isEvenNumber来判断一个数是否是偶数
//定义一个方法打印1-n以内的所有偶数
isEvenNumber(num) {
if (num % 2 == 0) {
return true;
}
return false;
}
print(isEvenNumber(2));
printEvenNumber(int n) {
for (var i = 1; i < n; i++) {
if (isEvenNumber(i)) {
print(i);
}
}
}
printEvenNumber(5);
匿名方法
printNum();
//匿名方法
var printNum = () {
print(123);
};
//匿名方法
var printNum1 = (int n) {
print(n);
};
自执行方法
(() {
print("我是自执行方法");
})();
递归
//通过方法的递归 求1-100的和
var sum = 0;
fn(int n) {
sum += n;
if (n == 0) {
return;
}
fn(n - 1);
}
fn(100);
print(sum);
闭包

全局变量
//全局变量常驻内存、全局变量污染全局全局变量特点
var a =100;
main(){
fn(){
print(a);
}
fn();
fn();
}
局部变量
//局部变量的特点:不常驻内存会被垃圾机制回收、不会污染全局
info() {
var a = 123;
a++;
print(a);
}
闭包实现不会污染全部,常驻内存
//闭包实现不会污染全部,常驻内存
main(){
fn() {
var a = 123;
return () {
a++;
print(a);
};
}
var b = fn();
b();
b();
}