Dart Listクラスのプロパティ

Dar言語StreamクラスtoSet()メソッドDart

Dart Listクラスのプロパティについてメモ書き。

プロパティ一覧

Dart Listクラスのプロパティについて記載。
公式サイトはこちら
プロパティを取得するためのコンストラクタは以下を参照の事。

Dart Listクラスのコンストラクタ
Dart Listクラスについてメモ書き。

Listクラスに用意されているプロパティ。

プロパティ説明
firstEListの先頭要素を返す。
hashCodeintオブジェクトのハッシュコード。
isEmptyboolListに要素が無い場合true。
Listに要素が有る場合false。
isNotEmptyboolListに要素が有る場合true。
Listに要素が無い場合false。
iteratoriterator<E>iteratorクラスのインスタンスを返す。
lastEList末尾の要素を返す。
lengthintListの要素数を返す。
runtimeTypeTypeオブジェクトのランタイムタイプ。
singleE要素数が1つだけであることを確認し、その要素を返す。
要素が複数ある場合はStateErrorを返す。

各プロパティの詳細を確認していく。

first

firstプロパティを確認。

void main() {
  try {
    final listTest = <String>["Apple", "Orange", "Banana"];
    print(listTest.first);
    
  } catch (e) {
    print(e.toString());
  }
}

実行結果。先頭の要素のみ返す。

Apple

hashCode

hashCodeプロパティを確認。

void main() {
  try {
    final listTest = <String>["Apple", "Orange", "Banana"];
    print(listTest[0].hashCode);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。ハッシュコードを返す。

884782484

isEmpty

isEmptyプロパティを確認。
先ずは要素が存在する場合。

void main() {
  try {
    final listTest = <String>["Apple", "Orange", "Banana"];
    print(listTest.isEmpty);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。

false

次は要素が存在しない場合。

void main() {
  try {
    final listTest = <String>[];
    print(listTest.isEmpty);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。

true

isNotEmpty

isNotEmptyプロパティを確認。
先ずは要素が存在する場合。

void main() {
  try {
    final listTest = <String>["Apple", "Orange", "Banana"];
    print(listTest.isNotEmpty);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。

true

次は要素が存在しない場合。

void main() {
  try {
    final listTest = <String>[];
    print(listTest.isNotEmpty);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。

false

iterator

iteratorプロパティについて確認。
while文で使っているmoveNext()メソッドはiterator要素を次に進める。
戻り値はbool型。次の要素がある場合は「true」、ない場合は「false」を返す。
print()で使用しているcurrentは現在の要素。

void main() {
  try {
    final listTest = <String>["Apple", "Orange", "Banana"];
    final listItr = listTest.iterator;
    while (listItr.moveNext()) {
      print(listItr.current);
    }
  } catch (e) {
    print(e.toString());
  }
}

実行結果。

Apple
Orange
Banana

currentはmoveNext()メソッドで最初の要素に移動していない場合例外を返す。
コーディングで確認。

void main() {
  try {
    final listTest = <String>["Apple", "Orange", "Banana"];
    final listItr = listTest.iterator;
    print(listItr.current);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。

type 'Null' is not a subtype of type 'String' in type cast

last

lastプロパティを確認。

void main() {
  try {
    final listTest = <String>["Apple", "Orange", "Banana"];
    print(listTest.last);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。List末尾の要素を返す。

Banana

length

lengthプロパティを確認。

void main() {
  try {
    final listTest = <String>["Apple", "Orange", "Banana"];
    print(listTest.length);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。要素数を返す。

3

runtimeType

runtimeTypeプロパティを確認。

void main() {
  try {
    final listTest = <String>["Apple", "Orange", "Banana"];
    print(listTest.runtimeType);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。ランタイムタイプを返す。

List<String>

single

singleプロパティを確認。

void main() {
  try {
    final listTest = <String>["Apple"];
    print(listTest.single);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。要素数が一つだけなので値を返す。

Apple

次は要素数を増やして確認。

void main() {
  try {
    final listTest = <String>["Apple", "Orange", "Banana"];
    print(listTest.single);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。要素数が複数あるので例外を返す。

Bad state: Too many elements

コメント

タイトルとURLをコピーしました