【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part05 Built-in型

基礎 から 学ぶ Flutter 」という書籍で  学習 したことを ブログでアウトプットしていこうと思います。今回は Dart編 ( part05 )です。

前回

【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part04 Built-in型

今回はBuilt-in型の続きになります。

変数

Built-in型

bool

truefalseはコンパイル時定数。
if文やassert関数はbool値のい指定できます。

この方は2つの値しか採択できないシンプルな型なので割と好きです。

List

Dartには「配列」というものが存在しません。
このListクラス一本だけです!
順序が保証されています。追加した順番に格納されていて、インデックスを指定するとその値が取得出るということです。
シンプルでいいですね😄

指定したインデックスが無い場合は実行時エラーになります。

addでデータを追加し、リストの変数に[x]を付与してインデックス指定することで値を参照できます。

var list = <int>[];
list.add(100);
print(list[0]);

リストのインデックスは0から始まります。
リストの1つ目の値を参照したい場合は0を指定すればいいわけですね。

いくつか宣言方法があるようです。
どれも同じ意味です。

var list1 = <int>[];
var list2 = List<int>();
List<int> list3 = [];

連続した値のリストが欲しい場合は以下のように実装すればよいとのことです。

var list = Iterable<int>.generate(3).toList();
print(list)

スマートですね。コレクションが、というよりもIterableのメソッドがスマートですよね(笑

generateメソッドは第2引数に関数を渡すことができます。
これを用いて簡単にテストデータを作ることができそうですね。

以下、重要な機能なので覚えておきます。

  • Spread Operator
  • null-aware Spread Operator
  • collection if
  • collection for

Set

ユニークな値を保持するためのコレクションです。
なので同じ「値」はあと勝ちで上書きしていきます。
Setそのものは順序は保証されていません。
DartではLinkedHashSetがデフォルトの実装となっているため順序が保証されます。

つまりDartでは普通にSetを使う場合、順序を保証するということです!

Set v1 = const {};

はSetになりますが、

var v2 = const {};

Mapで判定されるそうです。
気を付けないといけませんね。

最後に

Javaとあまり変わりないように見えるので少し安心しました!
でも初学者はこれでわかるんでしょうかね・・・。
本書はこの部分がメインではないので大丈夫ですよね!

今日はここまで!