dartノート03

7010 ワード

dartノート03


関数#カンスウ#

  • 関数
  • オプション関数
  • bool isNoble(int atomicNumber) {
      return _nobleGases[atomicNumber] != null;
    }
    
  • 名前付きオプション関数
  • /// Sets the [bold] and [hidden] flags ...
    void enableFlags({bool bold, bool hidden}) {...}
    
  • 位置オプションパラメータ
  •   []  :
    
    String say(String from, String msg, [String device]) {
      var result = '$from says $msg';
      if (device != null) {
        result = '$result with a $device';
      }
      return result;
    }assert(say('Bob', 'Howdy') == 'Bob says Howdy');assert(say('Bob', 'Howdy', 'smoke signal') ==
        'Bob says Howdy with a smoke signal');
    
  • デフォルトパラメータ値
  • =  。  。  ,  null。
    
     :
    
    ///   [bold]   [hidden]   ...
    void enableFlags({bool bold = false, bool hidden = false}) {...}
    
    // bold   true; hidden   false.
    enableFlags(bold: true);
    
  • 閉包関数
  • Function makeAdder(num addBy) {
      return (num i) => addBy + i;
    }
    
    void main() {
      //   2  。
      var add2 = makeAdder(2);
    
      //   4  。
      var add4 = makeAdder(4);
    
      assert(add2(3) == 5);
      assert(add4(3) == 7);
    }
    

    閉パッケージは、関数オブジェクトの呼び出しが元の役割ドメインの外にあっても、その文法役割ドメイン内の変数にアクセスできる関数オブジェクトです.
    関数は、その役割ドメイン内に定義された変数を閉じます.次の例では、makeAdder()は変数addByを取得します.戻り関数がいつ実行されるかにかかわらず、関数は取得されたaddBy変数を使用します.