sublist method Null safety

List<E> sublist (
  1. int start,
  2. [int? end]
)
override

Returns a new list containing the elements between start and end.

The new list is a List<E> containing the elements of this list at positions greater than or equal to start and less than end in the same order as they occur in this list.

var colors = ["red", "green", "blue", "orange", "pink"];
print(colors.sublist(1, 3)); // [green, blue]

If end is omitted, it defaults to the length of this list.

print(colors.sublist(1)); // [green, blue, orange, pink]

The start and end positions must satisfy the relations 0 ≤ startendthis.length If end is equal to start, then the returned list is empty.

Implementation

List<E> sublist(int start, [int? end]) {
  int listLength = this.length;
  end ??= listLength;
  if (end == null) throw "!"; // TODO(38493): The `??=` should promote.

  RangeError.checkValidRange(start, end, listLength);
  return List.from(getRange(start, end));
}