setAll 方法

void setAll(
  1. int index,
  2. Iterable<E> iterable
)
override

用 iterable 的对象覆盖元素。

从 index 位置开始将 iterable 的元素写入此列表。此操作不会增加列表的长度。

index 必须是非负数,且不大于 length

iterable 中的元素数量不能超过从 index 到 length 的范围。

如果 iterable 基于此列表,其值可能在 setAll 操作过程中改变。

final list = <String>['a', 'b', 'c', 'd'];
list.setAll(1, ['bee', 'sea']);
print(list); // [a, bee, sea, d]

实现

void setAll(int index, Iterable<E> iterable) {
  if (iterable is List) {
    setRange(index, index + iterable.length, iterable);
  } else {
    for (E element in iterable) {
      this[index++] = element;
    }
  }
}