Метод checkValidRange
Проверяет, что диапазон представляет собой срез индексируемого объекта.
Выбрасывает исключение, если диапазон не является допустимым для индексируемого объекта с заданным length. Диапазон является допустимым для индексируемого объекта с заданным length
если 0 <= [start] <= [end] <= [length]. Диапазон end от null считается эквивалентным length.
Значения по умолчанию для startName и endName соответственно равны "start" и "end".
Возвращает фактическое значение end, которое равно length, если end равно null, и end в противном случае.
Реализация
static int checkValidRange(int start, int? end, int length,
[String? startName, String? endName, String? message]) {
// Comparing with `0` as receiver produces better dart2js type inference.
// Ditto `start > end` below.
if (0 > start || start > length) {
startName ??= "start";
throw RangeError.range(start, 0, length, startName, message);
}
if (end != null) {
if (start > end || end > length) {
endName ??= "end";
throw RangeError.range(end, start, length, endName, message);
}
return end;
}
return length;
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/RangeError/checkValidRange.html