Dart Listクラスのプロパティについてメモ書き。
プロパティ一覧
Dart Listクラスのプロパティについて記載。
公式サイトはこちら。
プロパティを取得するためのコンストラクタは以下を参照の事。
Dart Listクラスのコンストラクタ
Dart Listクラスについてメモ書き。
Listクラスに用意されているプロパティ。
プロパティ | 型 | 説明 |
---|---|---|
first | E | Listの先頭要素を返す。 |
hashCode | int | オブジェクトのハッシュコード。 |
isEmpty | bool | Listに要素が無い場合true。 Listに要素が有る場合false。 |
isNotEmpty | bool | Listに要素が有る場合true。 Listに要素が無い場合false。 |
iterator | iterator<E> | iteratorクラスのインスタンスを返す。 |
last | E | List末尾の要素を返す。 |
length | int | Listの要素数を返す。 |
runtimeType | Type | オブジェクトのランタイムタイプ。 |
single | E | 要素数が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
コメント