9.20. Функции и операторы диапазонов/мультидиапазонов#
9.20. Функции и операторы диапазонов/мультидиапазонов #
См. Раздел 8.17 для обзора типов диапазонов.
Таблица 9.55 показывает специализированные операторы, доступные для типов диапазонов. Таблица 9.56 показывает специализированные операторы, доступные для типов мультидиапазонов. В дополнение к ним, для типов диапазонов и мультидиапазонов доступны обычные операторы сравнения, показанные в Таблица 9.1. Операторы сравнения сначала упорядочиваются по нижним границам диапазона, и только если они равны, сравниваются верхние границы. Операторы мультидиапазонов сравнивают каждый диапазон до тех пор, пока один из них не будет отличаться. Это обычно не приводит к полезному общему упорядочиванию, но операторы предоставляются для создания уникальных индексов на диапазонах.
Таблица 9.55. Операторы диапазона
Оператор Описание Пример(ы) |
---|
Содержит ли первый диапазон второй?
|
Содержит ли диапазон элемент?
|
Содержится ли первый диапазон во втором?
|
Находится ли элемент в диапазоне?
|
Перекрываются ли диапазоны, то есть, есть ли у них общие элементы?
|
Является ли первый диапазон строго левее второго?
|
Является ли первый диапазон строго правее второго?
|
Не простирается ли первый диапазон за пределы второго вправо?
|
Не простирается ли первый диапазон влево от второго?
|
Являются ли диапазоны смежными?
|
Вычисляет объединение диапазонов. Диапазоны должны перекрываться или быть смежными, чтобы объединение было одним диапазоном (но см. функцию
|
Вычисляет пересечение диапазонов.
|
Вычисляет разницу между диапазонами. Второй диапазон не должен быть содержимым первого таким образом, чтобы разница не была одним диапазоном.
|
Таблица 9.56. Операторы множественного диапазона
Оператор Описание Пример(ы) |
---|
Содержит ли первый мультидиапазон второй?
|
Содержит ли мультидиапазон диапазон?
|
Содержит ли мультидиапазон элемент?
|
Содержит ли диапазон мультидиапазон?
|
Является ли первый множественный диапазон содержащимся во втором?
|
Содержится ли мультидиапазон в диапазоне?
|
Содержится ли диапазон в мультидиапазоне?
|
Содержится ли элемент в мультидиапазоне?
|
Перекрываются ли мультидиапазоны, то есть, имеют ли они какие-либо общие элементы?
|
Перекрывает ли мультидиапазон диапазон?
|
Перекрывается ли диапазон с мультидиапазоном?
|
Является ли первый множественный диапазон строго левее второго?
|
Является ли мультидиапазон строго левее диапазона?
|
Является ли диапазон строго слева от мультидиапазона?
|
Является ли первый мультидиапазон строго правее второго?
|
Является ли мультидиапазон строго правее диапазона?
|
Является ли диапазон строго правее мультидиапазона?
|
Не простирается ли первый мультидиапазон за пределы второго вправо?
|
Не распространяется ли мультидиапазон вправо от диапазона?
|
Не распространяется ли диапазон вправо от мультидиапазона?
|
Не распространяется ли первый мультидиапазон влево от второго?
|
Не распространяется ли мультидиапазон влево от диапазона?
|
Расширяется ли диапазон влево от мультидиапазона?
|
Являются ли мультидиапазоны смежными?
|
Является ли множественный диапазон смежным с диапазоном?
|
Является ли диапазон смежным с мультидиапазоном?
|
Вычисляет объединение мультидиапазонов. Мультидиапазоны могут не перекрываться или быть смежными.
|
Вычисляет пересечение мультидиапазонов.
|
Вычисляет разность мультидиапазонов.
|
Операторы left-of/right-of/adjacent всегда возвращают false, когда включается пустой диапазон или мультидиапазон; то есть, пустой диапазон не считается ни перед, ни после любого другого диапазона.
В других случаях пустые диапазоны и множественные диапазоны рассматриваются как аддитивная идентичность: объединение чего-либо с пустым значением остается самим собой. Вычитание пустого значения из чего-либо также остается самим собой. Пустой множественный диапазон имеет точно такие же точки, как и пустой диапазон. Каждый диапазон содержит пустой диапазон. Каждый множественный диапазон может содержать сколько угодно пустых диапазонов.
Операторы соединения и разности диапазонов завершатся с ошибкой, если результативный диапазон должен содержать два непересекающихся поддиапазона, так как такой диапазон не может быть представлен. Существуют отдельные операторы для соединения и разности, которые принимают мультидиапазонные параметры и возвращают мультидиапазон, и они не завершаются с ошибкой, даже если их аргументы не пересекаются. Таким образом, если вам нужна операция соединения или разности для диапазонов, которые могут быть непересекающимися, вы можете избежать ошибок, сначала приведя ваши диапазоны к мультидиапазонам.
Таблица 9.57 показывает функции, доступные для использования с типами диапазонов. Таблица 9.58 показывает функции, доступные для использования с типами мультидиапазонов.
Таблица 9.57. Функции диапазона
Таблица 9.58. Функции множественного диапазона
Функции lower_inc
, upper_inc
,
lower_inf
и upper_inf
возвращают false для пустого диапазона или множественного диапазона.