一 方法的基本定义
// 1 方法的定义
int getNumber() {
return 99;
}
print(getNumber());
// 2 定义一个带参数的方法
String getStudentInfo(String name, int age) {
return "name:$name ----- age:$age";
}
// 3 定义一个带可选参数的方法
String getAnimalInfo(String name, [int sex = 0]) {
return "name:$name ----- sex$sex";
}
print(getStudentInfo("alexander", 89));
print(getAnimalInfo("Tom", 567));
//4 定义一个带默认参数的方法
String getWorkerInfo(String name, [int age = 18, int sex = 0]) {
return "name:$name ---- sex:$sex ---- age:$age";
}
print(getWorkerInfo("leonardo"));
// 5 定义一个把方法当做参数的方法
void fn1() {
print("fn1");
}
void fn2(fn) {
fn();
}
fn1();
二 箭头函数
// 1 箭头函数
List list1 = ["Blueberry", "Lemon", "Grape", "Orange"];
list1.forEach((element) {
print(element);
});
// 使用箭头函数 {}之内放置一句话 并且内部没有分号 ;
list1.forEach((element) => {print(element)});
三 闭包
/*
闭包:
1、全局变量特点: 全局变量常驻内存、全局变量污染全局
2、局部变量的特点: 不常驻内存会被垃圾机制回收、不会污染全局
/* 想实现的功能:
1.常驻内存
2.不污染全局
产生了闭包,闭包可以解决这个问题.....
闭包: 函数嵌套函数, 内部函数会调用外部函数的变量或参数, 变量或参数不会被系统回收(不会释放内存)
闭包的写法: 函数嵌套函数,并return 里面的函数,这样就形成了闭包。
*/
*/
// 1 函数嵌套函数 闭包
fn() {
var a = 1;
return () {
a++;
print(a);
};
}
var b = fn();
b();
b();
b();