Dart的函數

函數

可選參數

Dart是一個面向對象的語言,即使是函數也是對象,所以函數也可以被聲明成變量,或者作爲另一個函數的參數。也可以像調用函數一樣調用類的實例變量,這一點和Java類似(由於本人原先是做Java的,所以看語言的特性經常會以Java來類比)。

同樣,跟Java一樣,函數的參數可分爲有參和無參兩種類型。

以下以兩種不同的代碼段帶大家認識以下Dart的函數。

     /*判斷*/
  getNumStatus(num a) {
     if(a > 0) {
       return "數字大於零";
    }else if(a==0){
       return "數字等於零";
     }else{
       return "數字小於零";
     }
  }

 這種和Java 的寫法沒有太大的區別,與Java不同的是Dart可以將參數用中括號[]括起來,用來表明是可選位置的參數,例如在一個學生信息表中,其中Name和Sex,是必傳的,From和Phone是可以選擇性的傳遞(傳或不傳均可),代碼如下:

 //獲取用戶信息
  String getUserInfo(String name, String sex, [String phone,String from]) {
    var info = '$name的性別是$sex';
    if (from != null) {
      info = '$info來自$from';
    }
    if(phone !=null){
      info = '$info手機號是:$phone';
    }
    return info;
  }

  void  test() {
    print(getUserInfo('小帥', '男'));
  }

這種就是Dart的可選參數,調用上面的方法的輸出是“小帥的性別是男”,但是不會打印出手機號和性別,這點是和Java不一樣的(在我印象中Java是不可以這麼寫的,如有錯誤,還請指教。)

參數默認值

在Java中方法是分爲有返回值的方法和無返回值的方法,但是在Dart中如果參數指定了默認值,當不傳值是,函數裏會使用這個值的默認值(正常情況下這個默認值都會爲null),如果傳入了指定的值,則會返回指定的返回值,修改上述代碼如下:

//獲取用戶信息
  String getUserInfo(String name, String sex, [String phone = "110",String from = "中國"]) {
    var info = '$name的性別是$sex';
    if (from != null) {
      info = '$info來自$from';
    }
    if(phone !=null){
      info = '$info手機號是:$phone';
    }
    return info;
  }

  void  test() {
    print(getUserInfo('小帥', '男'));
  }

上述代碼輸出“小帥的性別是男來自中國手機號是:110”,這點也和Java不太一樣。

main函數

這裏和Java區別不大,程序必須擁有main函數,並且main函數也是程序的入口,Dart實例代碼如下:

void main() => runApp(MyApp());

函數返回值

在Dart語言中,函數的返回值有以下需要注意的幾點

  1. 所有的函數都會有返回值。
  2. 如果沒有指定函數返回值,則默認的返回值是null。
  3. 沒有返回值的函數,系統會在最後添加隱式的return語句。

本系列文章是自己閱讀 亢少軍老師 的《Flutter技術入門與實戰》

以上純屬個人見解,本人小白一個,如有錯誤,請大佬指教。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章