トップへ(mam-mam.net/)

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アプリ作成)」に戻る