Dart4-函数

返回类型 方法名(){}

方法可以嵌套

可选参数,默认参数

String printUserInfo(String userName,[int age=21,String sex="male"]){//[]为可选,=是默认

    if(age!=null){

       return "$userName----$age";

        }

       return "$userName----$age";

       }

void  main() {

print(printUserInfo("libai",21));

}

参数命名参数:就是调用时要写明参数名称

String printUserInfo(String userName,{int age=21,String sex="male"}){//{}为命名,=是默认

    if(age!=null){

       return "$userName----$age";

        }

       return "$userName----$age";

       }

void  main() {

print(printUserInfo("libai",age:21));

方法作为参数

fn1(){

  print("hello 1");

}

fn2(hanshu){

  fn1();

}

void  main() {

fn2(fn1);}

匿名方法

var fn=(){

  print("匿名方法赋值给了fn");

};

fn();

箭头函数

 List l2=[4,2,3,8,12];

  // var l3=l2.map((value){

  //    return value*2;

  // } );

  var l3=l2.map((value)=>value>2?value*2:value);

  print(l3.toList());

自执行方法

()()   一运行就执行,而不需要调用

 ((){

   print("hello");

})();

加了参数

  ((int n){

   print("hello $n");  //打印出12

})(12); //12表示传入参数是12

递归函数

int sum=1;

fn(int n){

  sum*=n;

  if(n==1){return;}

  fn(n-1);

}

fn(5);

print(sum);

闭包-较少使用

全局变量:全局变量常驻内存,污染全局

局部变量:不常驻内存

想实现:常驻内存,不污染环境---闭包

闭包:函数调用函数,内部函数会调用外部函数的变量或参数,变量不会被系统回收

写法:函数嵌套函数,病return里面的函数,就形成了闭包

fn(){

   var a=123;//不会污染全局,常驻内存

   return(){

    a++;

    print(a);

   };

}

var b=fn();

b();

b();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值