Dart 入門到跑路 ------ 方法、匿名函數、箭頭函數、閉包(三)

函數

內置方法/函數
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();
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章