Dart ListクラスfillRange()メソッド

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

DartのListクラスfillRange()メソッドについてメモ書き。

fillRange()メソッドは指定した範囲の要素を上書きする。
引数は以下の通り。

引数必須/オプション説明
第1引数必須int上書き開始位置を指定。
第2引数必須int上書き終了位置を指定。指定した値未満の要素を上書きする。
第3引数オプション[E? fillValue]要素を上書きする値を指定。配列の要素がnull許容を許さない場合、値の指定は必須。

コーディングでfillRange()メソッドを確認。

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

実行結果。
開始位置が「0」終了位置が「2」未満なのでインデックス「0」と「1」の要素が「Rice」で上書きされる。

[Rice, Rice, Banana]

次は配列の要素がnullを許容しない場合を確認。

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

実行結果。
fillRange()メソッドの第3引数がnullのためエラーとなる。

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

配列の要素がnullを許容する場合を確認。
配列の型を<String>から<String?>に変更。

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

実行結果。
インデックス1の要素がnullになる。

[Apple, null, Banana]

コメント

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