Flutter 學(xué)習(xí)從零開始-Dart方法

聲明:文章都是搬運(yùn)并整理

Dart是一種真正面向?qū)ο蟮恼Z言八毯,所以函數(shù)也是對象并且類型為Function,這意味函數(shù)可以被賦值給變量或者作為其他函數(shù)的參數(shù)绢涡。你也可以像調(diào)用函數(shù)一樣調(diào)用Dart 類的實例

參數(shù)

  • 函數(shù)可以有兩種形式的參數(shù): 必要參數(shù)和可選參數(shù)
  • 必要參數(shù)定義在參數(shù)列表的前面,
  • 可選參數(shù)定義在必要參數(shù)的后面

可選參數(shù)

  • 可選參數(shù)分為命名參數(shù)和位置參數(shù)
  • 可在參數(shù)列表中任選其一使用鳖轰,但是不能混用
// 可選參數(shù) 設(shè)置默認(rèn)值  
var add(int a ,int b,{int c = 0, int d}){
  return a+b;
}

main(){
int c = add(2,3);
int d = add(2,3,c:4,d:5);
}
  • 使用 參數(shù)名:參數(shù)值的形式來指定命名參數(shù)
  • 用大括號來指定命名參數(shù)
  • 可以提供默認(rèn)值
  • @required 注解來標(biāo)示一個命名參數(shù)是必須的參數(shù)

位置參數(shù)

int addValue(int a,[int b, int c]){
 return a+(b??0)+(c??0);
}
addValue(1);
addValue(1,2);
addValue(1,2,3);

int addValue(int a,[int b=0,int c =0]){
 return a+b+c;
}
  • 使用[]將一系列參數(shù)包裹起來作為位置參數(shù)
  • 可以用 = 為函數(shù)的位置參數(shù)定義默認(rèn)值清酥,默認(rèn)值必須為編譯時常量,沒有指定默認(rèn)值的情況下默認(rèn)值為null

main() 函數(shù)

每個Dart 程序都必須有一個main() 頂級函數(shù)作為程序的入口蕴侣,main()函數(shù)返回值void 并且有一個List<String> 類型的可選參數(shù)

函數(shù)作為一級對象

  • 可以將函數(shù)作為參數(shù)傳遞給另一個函數(shù)
  • 可以將函數(shù)賦值給給一個變量
main(){
  add(1,2,addResult);
  var temp = addResult; //將函數(shù)賦值給一個變量
  add(1,2,(v){ //匿名函數(shù)
    print(v);
  });
  var a =(v)=>"xxx $v"; //箭頭函數(shù)
  add(1,2,(v)=>{
     print(v)
  });
}
// 將addResult 作為參數(shù)傳如add函數(shù)中焰轻。
add(int a,int b,Function callback){
  callback(a+b);  // 調(diào)用addResult
}
addResult(int result){
  print(result);
}

匿名函數(shù)

  • 沒有名字的函數(shù)就是匿名函數(shù)
  • 稱之為匿名函數(shù),或Lambda表達(dá)式Closure 閉包
([[類型] 參數(shù)[,...]]){
    函數(shù)體昆雀;
}辱志;

立即執(zhí)行函數(shù)

((name){
 print('my name is ${name}');
})('postbird'); //my name is postbird

詞法作用域

  • 變量的作用域在寫代碼的時候就確定來
  • 大括號內(nèi)定義的變量只能在大括號內(nèi)訪問

詞法閉包

  • 閉包 即一個函數(shù)對象,即使函數(shù)對象的調(diào)用在它原始作用域之外狞膘,依然能訪問在它詞法作用域的變量
  Function getA() {
    int a = 0;
    return () {
      a++;
      print(a);
    };
  }

  Function b = getA();
  b();  //1
  b();  //2

函數(shù)是否相等

void foo(){} //頂層函數(shù)
class A {
  static void bar(){} //定義靜態(tài)方法
  void baz() {} // 定義實例方法
}
main(){
  var x;
// 比較頂層函數(shù)是否相等揩懒。
x = foo;
assert(foo == x);
// 比較靜態(tài)方法是否相等。
x = A.bar;
assert(A.bar == x);
// 比較實例方法是否相等
var v = A(); //A 的實例 #1
var w = A(); //A 的實例 #2
var y = w;
x = w.baz;
// 這兩個閉包引用來相同的實例對象挽封,因此它們相等已球。
assert(y.baz == x);
// 這兩個閉包引用來不同的實例對象,因此它們不相等。
assert(v.baz != w.baz);
}

返回值

  • 所有函數(shù)都有返回值
  • 沒有顯示返回語句的函數(shù)最后一行默認(rèn)執(zhí)行return null
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末智亮,一起剝皮案震驚了整個濱河市忆某,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌阔蛉,老刑警劉巖弃舒,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異馍忽,居然都是意外死亡棒坏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門遭笋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坝冕,“玉大人,你說我怎么就攤上這事瓦呼∥箍撸” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵央串,是天一觀的道長磨澡。 經(jīng)常有香客問我,道長质和,這世上最難降的妖魔是什么稳摄? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮饲宿,結(jié)果婚禮上厦酬,老公的妹妹穿的比我還像新娘。我一直安慰自己瘫想,他們只是感情好仗阅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著国夜,像睡著了一般减噪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上车吹,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天筹裕,我揣著相機(jī)與錄音,去河邊找鬼窄驹。 笑死饶碘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的馒吴。 我是一名探鬼主播扎运,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瑟曲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了豪治?” 一聲冷哼從身側(cè)響起洞拨,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎负拟,沒想到半個月后烦衣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掩浙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年花吟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厨姚。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡衅澈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谬墙,到底是詐尸還是另有隱情今布,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布拭抬,位于F島的核電站部默,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏造虎。R本人自食惡果不足惜傅蹂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望算凿。 院中可真熱鬧份蝴,春花似錦、人聲如沸澎媒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽戒努。三九已至,卻和暖如春镐躲,著一層夾襖步出監(jiān)牢的瞬間储玫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工萤皂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留撒穷,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓裆熙,卻偏偏與公主長得像端礼,于是被迫代替她去往敵國和親禽笑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354