可以使用async异步方法,以及await返回promise对象
函数名() async(){...}
语法
在main函数外
(1)返回类型 方法名(类型 参数,[类型 参数=值]) //[ ]声明的为可传参数及其默认值
{
...
return
}
(2)命名参数:
返回类型 方法名(类型参数,{@required 类型 参数,类型 参数=1})
{...}
调用: 方法名(参数,参数名:参数); 命名参数不是必穿参数,@required为必传参数
(3)省略返回类型和参数类型写法
方法名(参数名)
{...}
(4)匿名函数
var x=(){...}
(5)箭头函数
只能有一行表达式
无返回值:var xx=()=>{ 一行表达式 };
有返回值:var xx=()=> 返回值;
(6)自执行函数
((){...})()
(7)闭包
函数里面嵌套函数,使得局部变量常驻内存且不污染全局,不会被垃圾回收机制回收,下次调用是在上次基础上进行,即函数的外的变量引用了函数fn的的内部函数,使得变量一直存在
fn(){
var a=1;
return(){
a++;
printf(a);
}
}
var c=fn();
代码示例:
void main(){
String a=get();
print(a);
String b=f2(1);
print(b);
String c=f3('hh');
print(c);
}
String get()
{
return 'jj';
}
String f2(int i){
Map map={
'1':'1',
'b':2
};
return map[i.toString()];
}
//可选参数
String f3(String a,[String b='嘿嘿']){
return a+b;
}