Dart 函數(shù)

自定義方法

? 自定義方法的基本格式:

    返回類型  方法名稱(參數(shù)1漓帚,參數(shù)2,...){
        方法體
        return 返回值;
    }

可傳參數(shù)的方法

基本可傳參數(shù)方法

void sum(int a, int b){ // 定義需要傳多個參數(shù)讼昆,用英文,隔開
  print(a + b);
}
sum(2,4);

參數(shù)返回值

int sum(int a, int b){ 
  return a + b;
}
print(sum(2,4));

不同于OC,方法體內(nèi),若不寫return列荔,定義了有返回值的函數(shù),會默認返回 null枚尼,即:

int sum(int a, int b){ 
} 
print(sum(2,4)); // 這樣打印出來的結(jié)果就是 null

定義參數(shù)可選

利用[]贴浙,來定義可選參數(shù)。

  String student(String name, [int age, int studentId]){ // 在中括號內(nèi)的參數(shù)署恍,即為可選參數(shù)崎溃,可傳可不傳
    return '姓名:$name, 年齡:$age, 學號:$studentId';
  }
  print(student('張三')); // 這樣打印結(jié)果為:姓名:張三, 年齡:null, 學號:null

定義帶默認值的參數(shù)

直接在定義參數(shù)后面加入需要的默認值,在調(diào)用時不傳參數(shù)盯质,就會自動給參數(shù)賦默認值袁串。

  String student(String name, [int age = 20, int studentId]){
    return '姓名:$name, 年齡:$age, 學號:$studentId';
  }

  print(student('張三')); // 這樣打印結(jié)果為:姓名:張三, 年齡:20, 學號:null

定義函數(shù)參數(shù)命名

利用 {},將調(diào)用時需要命名的參數(shù)定義在{}內(nèi)呼巷,那么調(diào)用時囱修,則需要在傳參時給參數(shù)傳入相同的參數(shù)名稱,否則會報錯王悍。例:

  String student(String name, {int age = 20}){ 
    return '姓名:$name, 年齡:$age';
  }

  print(student('張三', age:30));

將方法作為參數(shù)

將方法作為函數(shù)參數(shù)傳值破镰,例:

  //方法1
  func1(){
    print('func1');
  }
  //方法2
  func2(func){
    func1();
  }
  //調(diào)用func2這個方法 把func1這個方法當做參數(shù)傳入
  func2(func1);

箭頭函數(shù)

箭頭函數(shù)只能寫一句話,不能寫多句話,不用填加分號結(jié)尾鲜漩。例:

    List list=['string1','string2','string3'];
        // 使用 forEach 遍歷 list 內(nèi)的元素
    list.forEach((value){
      print(value);
    });
        // 改為箭頭函數(shù)
    // 第一種
    list.forEach((value)=>print(value));

    // 第一種
    list.forEach((value)=>{
      print(value)
    });

自執(zhí)行方法

不用函數(shù)調(diào)用源譬,可以自執(zhí)行的方法。例:

// 沒有參數(shù)的自執(zhí)行方法
((){
  print('自執(zhí)行方法');
})();
// 定義帶參數(shù)的自執(zhí)行方法
((String str){
  print(str);
  print('帶參數(shù)的自執(zhí)行方法');
})('我是傳入的參數(shù)String');
// 打印結(jié)果為 我是傳入的參數(shù)String 自執(zhí)行方法

遞歸函數(shù)

// 遞歸求和
    var sum=0;
    funcSum(int n){
        sum+=n;
        if(n==0){
          return;
        }
        funcSum(n-1); // 循環(huán)調(diào)用 funcSum 函數(shù)
    }

    funcSum(5);
// 計算結(jié)果 sum 為 15

閉包

閉包實現(xiàn)的功能為:可以常駐內(nèi)存但不污染全局孕似。

閉包的實現(xiàn)方式為:函數(shù)嵌套函數(shù), 內(nèi)部函數(shù)會調(diào)用外部函數(shù)的變量或參數(shù), 變量或參數(shù)不會被系統(tǒng)回收(不會釋放內(nèi)存)瓶佳。

閉包的寫法: 函數(shù)嵌套函數(shù),并return 里面的函數(shù)鳞青,這樣就形成了閉包霸饲。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市臂拓,隨后出現(xiàn)的幾起案子厚脉,更是在濱河造成了極大的恐慌,老刑警劉巖胶惰,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件傻工,死亡現(xiàn)場離奇詭異,居然都是意外死亡孵滞,警方通過查閱死者的電腦和手機中捆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坊饶,“玉大人泄伪,你說我怎么就攤上這事∧浼叮” “怎么了蟋滴?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長痘绎。 經(jīng)常有香客問我津函,道長,這世上最難降的妖魔是什么孤页? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任尔苦,我火速辦了婚禮,結(jié)果婚禮上行施,老公的妹妹穿的比我還像新娘允坚。我一直安慰自己,他們只是感情好悲龟,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布屋讶。 她就那樣靜靜地躺著冰寻,像睡著了一般须教。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天轻腺,我揣著相機與錄音乐疆,去河邊找鬼。 笑死贬养,一個胖子當著我的面吹牛挤土,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播误算,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼仰美,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了儿礼?” 一聲冷哼從身側(cè)響起咖杂,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蚊夫,沒想到半個月后诉字,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡知纷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年壤圃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琅轧。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡伍绳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乍桂,到底是詐尸還是另有隱情墨叛,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布模蜡,位于F島的核電站漠趁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏忍疾。R本人自食惡果不足惜闯传,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卤妒。 院中可真熱鬧甥绿,春花似錦、人聲如沸则披。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽士复。三九已至图谷,卻和暖如春翩活,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背便贵。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工菠镇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人承璃。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓利耍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親盔粹。 傳聞我的和親對象是個殘疾皇子隘梨,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學習記錄文檔,今天18年5月份再次想寫文章舷嗡,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 2,739評論 2 9
  • 函數(shù)和對象 1出嘹、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念。通過函數(shù)可以封裝任意多條語句咬崔,而且...
    道無虛閱讀 4,543評論 0 5
  • 函數(shù) 1税稼、Dart 是完全面向?qū)ο蟮恼Z言,即使是函數(shù)也是對象垮斯,所以函數(shù)也可以被聲明成變量郎仆,或者作為另一個函數(shù)的參數(shù)...
    jeremyplus閱讀 1,973評論 0 1
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,783評論 1 10
  • 第5章 函數(shù)和函數(shù)式編程 5.1 引言函數(shù)是組織好的,可重復使用的兜蠕,用來實現(xiàn)單一扰肌,或相關(guān)聯(lián)功能的代碼段。函數(shù)...
    VIVAFT閱讀 950評論 0 5