Spec-Zone.ru › Dart 1

dart:collection

Метод replaceRange

void replaceRange(int start, int end, Iterable<E> newContents)

Удаляет объекты в диапазоне start включительно до end не включительно и вставляет содержимое replacement на его место.

List<int> list = [1, 2, 3, 4, 5];
list.replaceRange(1, 4, [6, 7]);
list.join(', '); // '1, 6, 7, 5'

Указанный диапазон, заданный start и end, должен быть допустимым. Диапазон от start до end является допустимым, если 0 <= start <= end <= len, где len — это length этого списка. Диапазон начинается с start и имеет длину end - start. Пустой диапазон (с end == start) является допустимым.

Этот метод не работает со списками с фиксированной длиной, даже если replacement имеет то же количество элементов, что и заменяемый диапазон. В этом случае используйте setRange вместо этого.

Исходный код

void replaceRange(int start, int end, Iterable<E> newContents) {
  RangeError.checkValidRange(start, end, this.length);
  if (newContents is! EfficientLengthIterable) {
    newContents = newContents.toList();
  }
  int removeLength = end - start;
  int insertLength = newContents.length;
  if (removeLength >= insertLength) {
    int delta = removeLength - insertLength;
    int insertEnd = start + insertLength;
    int newLength = this.length - delta;
    this.setRange(start, insertEnd, newContents);
    if (delta != 0) {
      this.setRange(insertEnd, newLength, this, end);
      this.length = newLength;
    }
  } else {
    int delta = insertLength - removeLength;
    int newLength = this.length + delta;
    int insertEnd = start + insertLength; // aka. end + delta.
    this.length = newLength;
    this.setRange(insertEnd, newLength, this, end);
    this.setRange(start, insertEnd, newContents);
  }
}

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-collection/ListMixin/replaceRange.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API