函数
内置方法/函数
print();
自定义方法
自定义方法的基本格式
返回类型 方法名称(参数1.......){
方法体
return 返回值
}
定义一个方法然后打印用户信息
String printUserInfo(String username,int age){ //行参
return "姓名:$username---年龄:$age";
}
print(printUserInfo('张三',20)); //实参
定义一个带可选参数的方法
String printUserInfo(String username,[int age]){ //行参
if(age!=null){
return "姓名:$username---年龄:$age";
}
return "姓名:$username---年龄保密";
}
定义一个带默认参数的方法
String printUserInfo(String username,[String sex='男',int age]){ //行参
if(age!=null){
return "姓名:$username---性别:$sex--年龄:$age";
}
return "姓名:$username---性别:$sex--年龄保密";
}
定义一个命名参数的方法
String printUserInfo(String username,{int age,String sex='男'}){ //行参
if(age!=null){
return "姓名:$username---性别:$sex--年龄:$age";
}
return "姓名:$username---性别:$sex--年龄保密";
}
箭头函数
和es6一样
List list =['1','2','3'];
list.forEach((value){
print(value);
);
list.forEarch((value=>print(value));
list.forEarch()
匿名函数
和其他语言一致
var printNum =(){
print(12345);
};
printNum();
自执行方法
((int n){
print(n);
)(12);
方法的递归
var num =1;
fn(n){
sum *=n;
if(n==1){
return ;
}
f(n-1);
}
fn(5);
闭包
闭包 函数嵌套函数,内部函数会调用外部函数的变量或参数,变量或参数不会被系统回收(不释放内存)
闭包写法: 函数嵌套函数 并return里面的函数
全局变量 常驻内存、污染全局
局部变量 不常住内存会被垃圾机制回收、不会污染全局
fn(){
var a =123;
return(){
a++;
print(a);
};
}
var b =fn()
b();