天天看點

【Flutter】Dart的方法與箭頭函數

1. 寫在前面

在上篇文章中介紹了

Dart

的基本資料類型中的數組(

list

)和字典(

Map

),那麼現在就繼續來學習

Dart

的基礎文法中方法和函數是如何表示的吧。

【Flutter】Dart的方法與箭頭函數

【Flutter】蘋果Mac電腦組態flutter開發環境

【Flutter】 Android Studio 安裝第三方模拟器—網易MuMu

【Flutter】項目運作報錯Failed to find Build Tools revision 29.0.2

【Flutter】flutter doctor 報錯Android license status unknown. Run `flutter doctor --android-licenses‘

【Flutter】如何建立項目,運作你的第一個 flutter 工程項目

【Flutter】Dart中的var、final 和 const基本使用

【Flutter】Dart資料類型之num

【Flutter】Dart資料類型之String

【Flutter】Dart的資料類型list&Map(數組和字典)

2. 補充一點内容

dart

中有兩個比較特殊的運算符。

  • 指派運算符

    ??=

  • 條件運算符

    ??

void operatorTest(){
//  dart中的運算符
/*
* 指派運算符 ??=
* 條件運算符 ??
*
*/
  //舉例

  var a;
  a ??= 10;//當a沒有值的時候就指派 10
  print(a);

  a ??= 5;
  print(a);
  a ??= 1;
  print(a);

}
           
  • 代碼運作結果
    【Flutter】Dart的方法與箭頭函數

a

初始化的時候沒有值,當已經指派之後,後面再使用

??=

指派就指派不上了,因為此時

a

已經有值了。

結論

: 如果

a

nil

就指派,如果

a

有值了就直接傳回該值,并不會重新賦上新值。
  • 條件運算符 ??
void operatorTest(){
//  dart中的運算符
/*
* 條件運算符 ??
*/
  var a;
  a ??= 10;//當a沒有值的時候就指派 10
  var b ;
  b = 5;
  print(b ?? a);// ??當左邊有值就傳回左邊,否則傳回右邊

           
  • 運作結果
【Flutter】Dart的方法與箭頭函數
  • 傳回右邊值
【Flutter】Dart的方法與箭頭函數

3. 方法與箭頭函數

萬物皆對象,在

dart

中,方法也是一個對象,傳回值和參數類型可以省略。
當方法的執行語句隻有一句的時候,可以使用箭頭函數 => 表達式

3.1 方法舉例

void main(){

  functionTest();

}
void functionTest(){
  print("我是 function");
}
           
  • 運作結果
【Flutter】Dart的方法與箭頭函數

3.2 箭頭函數舉例

  • 上面的可以改成這樣的,也是一樣的
    【Flutter】Dart的方法與箭頭函數
  • 舉例
void main(){

  functionTest();

}
void functionTest() {
  print(sum(10, 10));
}
// 求和方法
int sum (int a,int b){
  return a +b ;
}
           
上面已經說過:傳回值和參數類型可以省略。那麼變形如下:
// 求和方法
sum (a,b){
  return a +b ;
}
           

但是不建議這麼寫,不便于閱讀沒有必要。傳回值和參數類型省略了又隻有一句話,又可以變成箭頭函數,

return

都可以直接不要了如下:

// 求和方法
sum (a,b) =>  a +b ;
           
  • 運作結果
【Flutter】Dart的方法與箭頭函數

3.3 箭頭函數支援三目運算

void main(){

  functionTest();

}
void functionTest() {
  print(sum(10, 10));
}
// 求和方法
sum (a,b) =>  a == 10 ? a + b : a - b;

           
  • 運作結果
【Flutter】Dart的方法與箭頭函數

4. 寫在後面

關注我,更多内容持續輸出
  • CSDN
  • 掘金
  • 簡書
🌹 喜歡就點個贊吧👍🌹
🌹 覺得有收獲的,可以來一波 收藏+關注,以免你下次找不到我😁🌹
🌹歡迎大家留言交流,批評指正,

轉發

請注明出處,謝謝支援!🌹