本ページはDartについて学習した内容を記録したものです。

Dart Pad

Dartを学ぶために何かをインストールする必要はない。

Flutterの前にDart言語を理解する必要があるのでまずはWeb上でDart言語が実行できるDartPadで学習を始める。

Googleでdartpadを検索すると一番最初に出てくるものをクリックする。

Search Result

DartPadをクリックすると次のような画面が表示される。

DartPad

main関数が表示されていてその中に何か書いてあるかもしれないが、一旦消してしまおう。

いつものHello Worldを出力してみよう。

1
2
3
void main() {
    print('Hello World!');
}

上記のように入力して画面上にある「Run」ボタンをクリックすると右側のConcsole窓に結果が表示される。

Hello World

文の最後にセミコロン(;)を忘れずに!

変数

Dartではいろんな方法で変数宣言ができる。代表的なものはvarによる宣言だ。

1
2
3
4
5
6
void main() {
    var name = 'Hello';
    print(name);
    name = 'papanoyang';
    print(name);
}

Example

データタイプ

先ほどは変数を宣言し、文字列の値を設定したので文字列型(String)になる。今回は整数型を宣言してみよう。

1
2
3
void main() {
    var n1 = 10;
}

整数の値を設定すれば、整数型の変数が宣言できる。でも明示的に型を指定して宣言することもできる。

1
2
3
void main() {
    int n1 = 10;
}

上記のようにデータタイプを明示的に指定すると整数以外の値を設定するとエラーになる。

整数の宣言ができるようになったので演算をやってみよう。

1
2
3
4
5
6
7
8
9
void main() {
  int n1 = 4;
  int n2 = 6;
  
  print(n1 + n2);
  print(n1 - n2);
  print(n1 / n2);
  print(n1 * n2);
}

Example

double型も存在する。文字列型も、bool型も存在する。

1
2
3
4
5
void main() {
    String str = 'Hello World';
    bool isTrue = false;
    double d1 = .001;
}

doubleの場合小数点の前が0の場合、省略できる。

varとデータタイプを明示的に指定するのとどんな違いがあるだろう。varは設定される値によって型が決まるのは分かる気がする。値なしで設定するとどうなるだろう。型を確認してみよう。

1
2
3
4
5
6
7
8
9
10
11
12
13
void main() {
  var v1 = 10;
  var v2 = .5;
  var v3 = false;
  var v4 = '文字列';
  var v5;

  print(v1.runtimeType);
  print(v2.runtimeType);
  print(v3.runtimeType);
  print(v4.runtimeType);
  print(v5.runtimeType);
}

Example

タイプの確認はruntimeTypeで分かる。値を設定してないものはnullとなっている。

printを使っているので使い方を覚えておこう。今までは変数をそのままprintに指定していたが、フォーマッティングしたい時もある。

1
2
3
4
5
6
void main() {
  var v1 = 10;
  var v2 = .5;
  
  print('変数v1の値は$v1です');
}

Example

printに渡す文字列の中に$を記入し、変数名を入力すると該当変数の値に置き換わる。

今回はデータタイプも見たいとか、数字を出したいとかになると以下の方法でできる。

1
2
3
4
5
void main() {
  var v1 = 10;
  
  print('変数v1の値は$v1です。データタイプは${v1.runtimeType}');
}

Example

dynamic

Dartのデータタイプの中にdynamicというものがある。

1
2
3
4
5
6
void main() {
  dynamic d1 = 'ダイナミックです!';
  print('変数d1の値は"$d1"です。データタイプは${d1.runtimeType}');
  d1 = 100;
  print('変数d1の値は"$d1"です。データタイプは${d1.runtimeType}');
}

結果は次のようになる。

1
2
変数d1の値は"ダイナミックです!"です。データタイプはString
変数d1の値は"100"です。データタイプはint

上記のようにdynamic型はデータタイプを自由に変えることができる。

先ほどvarで値を指定してなかったときにデータタイプがnullになっていたので少し気になる。次のコードをやってみよう。

1
2
3
4
5
6
7
void main() {
  var v1;
  v1 = 'Stringかも';
  print('変数d1の値は"$v1"です。データタイプは${v1.runtimeType}');
  v1 = 100;
  print('変数d1の値は"$v1"です。データタイプは${v1.runtimeType}');
}
1
2
変数d1の値は"Stringかも"です。データタイプはString
変数d1の値は"100"です。データタイプはint

コンパイラーに怒られるかもしれないが、varで宣言したときに値を指定してなかったら、該当変数はdynamicになることが分かる。

タグ:

カテゴリー:

更新日時:

コメントする