八、函数及相关
1 函数
和C语言一样,函数由返回值,函数名,函数体组成
int getNum(){}
方法调用,使用方法名调用即可
getNum();
2 参数
不指定类型参数
int sumNum(n){}
指定类型参数,和C语言一摸一样
int sumNum(int n,String str){}
3 可选参数
中括号内的参数可传可不传
String getUser(String name,[int age,String sex]){}
getUser('张三');
getUser('张三','男');
4 带默认参数
String getUser(String name,[int age,String sex = ‘男’]){}
getUser('张三',20,'女');
5 命名参数
String getUser(String name,{int age,String sex = ‘男’}){}
getUser('张三',age:20,sex:'女');
6 方法作为参数
a(){
print("aaaa");
}
fn(aaa){
aaa();
}
fn(a);
7 匿名方法
var fn=(int n){
print("这是个匿名方法"+n);
};
fn(1);
8 箭头函数(注意:方法体只能写一句话,并且不要加分号)
List items = [1,2,3,4]; var newList = items.forEach((value)=>print(value));
List items = [1,2,3,4];
var newList = items.forEach((value)=>{
print(value)
});
9 自执行方法
((){
print("这是自执行方法");
})();
//带参数
String str = 'aaaa';
((String args){
print("$args");
})(str);
10 闭包
闭包的产生及作用:
全局变量特点: 全局变量常驻内存,全局变量污染全局
局部变量特点: 不常驻内存,会被垃圾回收机制回收,不会污染全局
闭包产生:常驻内存,不污染全局
闭包本质:函数嵌套函数,内部函数会调用外部函数的变量或参数。
fn(){
var a=123;
return (){
a++;
print(a);
};
}
var b = fn();
b();
b();
b();

浙公网安备 33010602011771号