Flutter-Dart言語ベース

5677 ワード

他のプログラミング言語の経験、特にJavaやJavaScriptがあれば、Dartを簡単に手に入れることができ、基本的には1回の紹介で身につけることができます.記事の最後に次のdemoインスタンスgithubリンクがあります.
Dart概要
前編ではDart言語の由来やいくつかの言語特性などの利点を述べたが,ここでは重複しないので,前の記事を見て紹介することができる.
JavaScriptのように、Dartはオブジェクト向け言語ですが、カテゴリベースのプログラミングを採用しています.単一の継承のみが許可され、文法スタイルはC言語に近い.
Dartのメソッドもオブジェクトであり、メソッドが変数に値を付与したり、他のメソッドのパラメータとして使用したり、Dartクラスのインスタンスをメソッドとして呼び出すことができることを意味するタイプFunctionを有する.
Dart言語で変数を使用して参照できるものはすべてオブジェクトであり、各オブジェクトはクラスのインスタンスです.数値、メソッド、nullまでオブジェクトであり、すべてのオブジェクトがObjectクラスに継承されます.
Dartは強いタイプの言語で、どの変数にも確定タイプがあります.
変数宣言
1、Object
Objectは、FunctionとNullを含むDartのすべてのオブジェクトのベースクラスであるため、任意のタイプのデータはObject宣言のオブジェクトに付与され、宣言された変数は後で付与タイプを変更できます.
   ///     Object   
  Object myObject;
  myObject = 'dart is good';//  string  
  myObject = 998;//     num
  print(myObject);

  ///     dynamic      
  dynamic myDynamic;
  myDynamic = "dart is good";
  myDynamic = 999;//     num     
  print(myDynamic);

  ///dynamic Object  :dynamic                  ,
  /// Object         Object      ,         

2、var
タイプを指定せずに変数を宣言する方法ですが、変数が割り当てられている限り、タイプが決定され、そのタイプは変更できません.
//      
  var number = 10;
//  number = 'start';//   ,     number = 10   ,number       

3、final and const
後で変数を変更するつもりがない場合はfinalまたはconstを使用します.1つのfinal変数には1回しか値を付与できません.1つのconst変数はコンパイル時定数です.(Const変数はfinal変数でもあります.)トップクラスのfinal変数またはクラス内のfinal変数は、最初に使用したときに初期化されます.
  //         ,    final         
  final name2 = 'Bob';
  // name2 = "bbb";//            

  var foo = const [];
  final bar = const [];
  const baz = const [];

  foo = [];//    value
//  bar = [];//       final      
//  baz = [];//       const      


4、内蔵タイプ
ここはコードを直接見てください.
  //int   double    num    
  int x = 1;
  double y = 1.0;

  var x1 = 1;
  var y2 = 1.0;

  // String -> int
  var one = int.parse('1');
  print("String -> int:$one");

  // int -> String
  String oneAsString = 1.toString();
  print("int -> String:$oneAsString");

  ///                  
  var s1 = '   string';
  var s2 = "   string";
  print(s1);
  print(s2);

  ///                         
  var s3 = '''
     
     
     
''';
  print(s3);

  var count;
  print('Hello, World!');
  print(count);
  printNumber(number);

  ///      list
  var list = [1, 2, 3];
  list.forEach(printElement);

  ///        list
  var constantList = const [1, 2, 3];

  ///     map
  var gifts = {
// Keys      Values
    'first' : 'partridge',
    'second': 'turtledoves',
    'fifth' : 'golden rings'
  };

  ///      map
  var gifts2 = new Map();
  gifts2['first'] = 'partridge';
  gifts2['second'] = 'turtledoves';
  gifts2['fifth'] = 'golden rings';
  print(gifts2);

  ///      bool     
  var isGood = true;
  print(isGood is bool);

//      。
printNumber(num aNumber) {
  print('The number is $aNumber.'); //         。
}

printElement(element) {
  print(element);
}

  ///List   Set      Iterable         for-in       
  var collection = [0, 1, 2];
  for (var x in collection) {
    print(x);
  }

///       ,          paramName: value        
  sayHello(name: "dart",talk: "hello");
  sayHello(name: "dart");

オペレータ
ほとんどのオペレータの意味は同じですが、ここではdart特有の
1、??
b ??= value; //    b   null,     b;
             //      null,  b       

2、?
条件メンバーのアクセスは.と似ていますが、左の操作オブジェクトはnull、例えばfoo?bar fooがnullの場合nullを返し、そうでない場合barメンバーを返します
非同期
Dartには非同期プログラミングをサポートする言語特性があります.最も一般的な特性は、asyncメソッドおよびawait式である.
Dartライブラリには、FutureまたはStreamオブジェクトを返す方法がたくさんあります.これらの方法は非同期です.これらの関数は、基本的な操作が設定された後に返され、操作の実行が完了するのを待つ必要はありません.たとえば、ファイルを読み込むと、ファイルを開いた後に戻ります.
Futureオブジェクトのデータを使用するには、次の2つの方法があります.
  • asyncおよびawait
  • を使用する.
  • Future API
  • を使用
    同様に、Streamからデータを取得するには、次の2つの方法があります.
  • asyncと非同期forサイクル(await for)
  • を使用
  • Stream API
  • を使用
    awaitを使用するには、asyncキーを使用する必要があります.
    lookUpVersion(){
    }
    
    checkVersion() async {
      var version = await lookUpVersion();
    }
    
    ///   getName      
    String getName(String name){
      return 'dart$name';
    }
    
    void sayDart() async {
      try{
        String name1 = await getName("1");
        String name2 = await getName(name1);
        print(name1+name2);
        //        
      } catch(e){
        //    
        print(e);
      }
    }
    

    Future.then:
      /// Future.delayed          
      Future.delayed(new Duration(seconds: 5),(){
        return "Hello, World!";
      }).then((data){
        print(data);
      });
    

    Future.wait:
    複数の非同期タスクの処理
      /// Future.wait         
      Future.wait([
        Future.delayed(new Duration(seconds: 1), () {
          return "Hello, World 1!";
        }),
        Future.delayed(new Duration(seconds: 2), () {
          return "Hello, World 2!";
        })
      ]).then((results){
        print(results);
      }).catchError((e){
        print(e);
      });
    

    まとめ
    上記の基本的な紹介とコードの解釈を通じて、Dartの基本的な文法とタイプシステムに対して初歩的な理解があって、書く規則も知っています.冒頭で言ったように、他のプログラミング言語の基礎があれば、Dart言語を上手にするのは簡単だと思います.
    if-else、forループ、while、do-while、break、continue、switch-caseなどのプロセス制御文法は他のプログラミング言語と大きく異なり、ここでは一つ一つ紹介しません.
    より多くのDart言語の特性は、後続の使用過程でゆっくり学ぶ必要があります.公式文書を参照できますhttps://api.dartlang.org/stable/2.2.0/index.html
    コードインスタンス
    github flutter-freeが転送されました
    リファレンスラーニング
    http://dart.goodev.org/guides/get-started とても良い対比はウェブサイトを学びます