Dartをやる

Dartは、元々JavaScriptの代替を意識して作られていたらしい。だからjsに似ている。最高 そしてDartはコンパイル言語である。これもイイ。

finalとconstの違い

2022-07-22 Dartには、constとfinalというものがある。両者は再代入不可という部分では非常によく似ている。 しかし、異なる点がある。 例えばこのコード const datetime = DateTime.now(); これは、コードを実行した時刻をdatetimeに記録したいという意図。したがってコンパイル時には定数を格納することができない。 constは、コンパイル時に値を決定するため、上記のコードはエラーとなる しかし、 final datetime = DateTime.now(); これならいける。 finalは、1度格納した変数には上書きできないというもので、必ずしもコンパイル時に決定する必要はない。

コンストラクタ

class Hoge {
  String name = "";
  Hoge(String name) {
    this.name = name;
  }
}

こんなコンストラクタがあったとする

これは以下のように省略することができる

class Hoge {
  String name;
  Hoge(String name);
}

forEach

DartのforEachはこうらしい

forEach((elem) {
  hoge();
})

文字列の中に変数をいれて出力

'結果:${hoge}'
"結果:$hoge"

ふつうにダブルクォートとかシングルクォートでいけるらしい。 そして波括弧{}もなくてもいけるらしい

しかし、

'結果:$hoge(num)'

と言った場合は、

'結果:${hoge(num)}'

波括弧ないとアカンらしい

名前付き引数

名前付き引数って?

hoge(name: 'keigo');

こんな感じで、プロパティ名を指定して引数をわたすこと。

これの受け取り側の書き方は、

hoge ({ required String name }) {
  print(name);
}

これで受け取ることができる。 必須ではなくoptionalにする場合は、

hoge ({ String? name }) {
  print('こんにちは$name');
}

みたいにできる。 nameがnullになってもいいようなコードかかなければいけんけどな