функция Arrays::copy

Копирует заданное количество элементов из одного массива в другой

Синтаксис

static
void
Arrays.copy
(List src, int srcStart, List dst, int dstStart, int count)

Передаваемые параметры

List src, int srcStart, List dst, int dstStart, int count

Возвращаемое значение

void

Описание

Метод copy позволяет скопировать count элементов из массива List src в массив List dst. Во время выполнения заменяются значения элементов в массиве dst начиная с элемента с индексом dstStart на значения элементов массива src начиная с элемента srcStart, пока не скопируется count элементов.

  • В случае, если какой-либо из индексов (dstStart, dstStart + count - 1, srcStart, srcStart + count - 1) выйдет за границы соответствующего массива, генерируется ошибка RangeError.
  • Заметки

    Пример

    // подключим библиотеку "dart:collection"
    import "dart:collection";
    
    void main() {
      // инициализируем массив #1 с данными
      List list_copySource;
      list_copySource = ["a", "b", "c"];
    
      // инициализируем массив #2 с данными
      List list_copyDistance;
      list_copyDistance = ["1", "2", "3"];
    
      // скопируем 2-а элемента из начала первого массива во начало второго
      Arrays.copy(list_copySource, 0, list_copyDistance, 0, 2);
      // в результате получим такой список [a, b, 3]
      print(list_copyDistance);
    
    
      // очистим второй массив
      list_copyDistance.clear();
      // и если попробуем скопировать 1 элемент из первого массива, то
      // получим ошибку RangeError, потому что целевой массив пуст!
      Arrays.copy(list_copySource, 0, list_copyDistance, 0, 1);
    
     
      // заполним второй массив
      list_copyDistance = ["1", "2", "3"];
      // и если попробуем скопировать 3 элемент из первого массива, но
      // не в начала второго, а в конец, то тоже получим ошибку RangeError,
      // потому что целевой массив по размеру не вместит еще два элемента!
      Arrays.copy(list_copySource, 0, list_copyDistance, 2, 3);
    }
    

    Смотрите также

    класс List - Базовый класс для организации и обработки массивов элементов
    List::setRange - Копирует элементы из заданного списка в текущий
    List::insertRange - Вставляет ряд новых элементов в список
    List::removeRange - Удаляет ряд элементов из списка

    Официальная документация (английский)