Таким образом, в Java, когда указан индексированный диапазон, верхняя граница почти всегда исключительна.
От 1_:
Возвращает новую строку, которая является подстрокой этой строки. Подстрока начинается с указанного
beginIndex
и продолжается до символа с индексомendIndex - 1
От java.util.Arrays
:
from
- начальный индекс копируемого диапазона, включительноto
- конечный индекс копируемого диапазона, исключая.
От java.util.BitSet
:
fromIndex
- индекс первого устанавливаемого бита.toIndex
- индекс после последнего устанавливаемого бита.
Как видите, похоже, что Java пытается сделать это согласованным соглашением о том, что верхние границы являются исключительными.
Мои вопросы:
- Это официальная авторитетная рекомендация?
- Есть ли заметные нарушения, которых нам следует опасаться?
- Есть ли у этой системы название? (аля "на основе 0" против "на основе 1")
УТОЧНЕНИЕ: Я полностью понимаю, что набор N
объектов в системе с нулевым индексом индексируется 0..N-1
. Мой вопрос в том, что если задан диапазон (2,4)
, это может быть либо 3 элемента, либо 2, в зависимости от системы. Как вы называете эти системы?
СНОВА, проблема не в системе "первый индекс 0
последний индекс N-1
" и "первый индекс 1
последний индекс N
"; это известно как система на основе 0 и 1.
Проблема заключается в том, что в системах (2,4)
есть 3 элемента, а в системах (2,4)
- 2 элемента. Как вы это называете, и является ли одно из них официально санкционированным?