Dart基本構文 ~ 初めてのFlutter+Dart体験記

Dart基本構文 ~ 初めてのFlutter+Dart体験記


■基本型

Dartではどんな型もオブジェクト

整数型

  int i=10;

浮動小数点型

  double d=12.3;

文字列型

  String s="ABC";

型推論(どんな型でも代入できる)

  dynamic j=10;
  j='abc';
  

型推論

  var v=7;//int型と推論されて、vはint型になる
  //v='abc'; エラー
  

List型(重複可能配列)

  List arr1=[1,2,3];
  arr1.add(4);       //[1,2,3,4]
  arr1.insert(4,5);  //添字4に値5を追加[1,2,3,4,5]
  arr1[1]=0;         //[1,0,3,4,5]
  arr1.sort();       //[0,1,3,4,5]
  

Set型(重複不可配列、値の変更は不可)

  Set arr2={'a','b','c'};
  arr2.add('d');           //追加
  print(arr2);             //{a, b, c, d}
  print(arr2.elementAt(0));//a
  

Map型(連想配列みたいなもの)

  Map m = {'a': 1, 'b': 'abc'};
  print(m);    //{a: 1, b: abc}

  Map map=Map<String,int>();
  map['hoge']=1;
  map['fuga']=3;
  map['hoge']=2;
  print(map);  //{hoge: 2, fuga: 3}
  

定数

  final k=1;
  //k=2; エラー
  const l=1;
  //l=2; エラー
  

■制御

if else文

   var i=0;
   if(i==0){
     i++;
   }else if(i==1){
     i+=20;
   }else{
     i+=200;
   }
   print(i.toString()); //1
  

for文

  int i;
  for(i=0;i<3;i++){
    print('for: ${i.toString()}');
  }
  

forEach文

  List arr1=[1,2,3];
  arr1.forEach((val){print('forEach List:'+val.toString());});

  Set arr2={1,2,3};
  arr2.forEach((val){print('forEach Set:$val');});

  Map arr3={'first':1,'second':2};
  arr3.addAll({'third':3,'fourth':4});
  arr3.forEach((key,val){print('$key=$val');});
  

while文

  var i=0;
  while(true){
    if(++i>9){
      break;
    }
  }
  print('while: '+i.toString()); //10
  

do while文

  var i=0;
  do {
    i++;
  } while (i<3);
  print('do while: $i'); //3
  

switch文

  var sw='second';
  switch(sw){
    case 'first':
      print('first');
      break;
    case 'second':
      print('second');
      continue FOURTH;//FOURTHラベルに飛ぶ
    case 'third':
      print('third');
      break;
    FOURTH:
    case 'fourth':
      print('fourth');
      break;
    default:
      print('nothing');
  }
  //second
  //fourth
  

try catch文

  void errorFunction() {
    try {
      throw Exception('例外'); //意図的に例外を生成
    } on Exception catch(e) {
      print('関数内 --'+e.toString());
      //try-catch-finallyブロックの外に例外を投げなおす
      rethrow;
    } finally {
      //例外が発生してもしなくても必ず実行
      print('finallyが実行');
    }
  }
  try{
    errorFunction();
  }catch(e,s){
    // 型を指定しないcatchは、例外全部をキャッチする
    // catchに仮引数を2つ指定すると、2つ目はStackTraceオブジェクトが入る
    //print(e.toString() + '\x0a' + s.toString());
    print('関数外 --'+e.toString());
  }
  //関数内 --Exception: 例外
  //finallyが実行
  //関数外 --Exception: 例外
  

「 初めてのFlutter+Dart体験記(Android,iOSアプリ作成)」に戻る

Copyright 2021 Mam