有關範圍型別的概述,請參閱第 8.17 節。
表 9.58 顯示了可用於範圍型別的專用運算子。表 9.59 顯示了可用於多範圍型別的專用運算子。此外,表 9.1 中顯示的常用比較運算子也可用於範圍和多範圍型別。比較運算子首先按範圍的下界排序,只有當下界相等時,它們才比較上界。多範圍運算子逐個比較範圍,直到有一個不相等。這通常不會產生有用的整體排序,但運算子的存在允許在範圍上構造唯一索引。
表 9.58. 範圍運算子
運算子 描述 示例 |
---|
第一個範圍是否包含第二個範圍?
|
範圍是否包含該元素?
|
第一個範圍是否被第二個範圍包含?
|
該元素是否包含在範圍內?
|
兩個範圍是否重疊,即是否有任何元素是共同的?
|
第一個範圍是否嚴格位於第二個範圍的左側?
|
第一個範圍是否嚴格位於第二個範圍的右側?
|
第一個範圍是否不延伸到第二個範圍的右側?
|
第一個範圍是否不延伸到第二個範圍的左側?
|
兩個範圍是否相鄰?
|
計算兩個範圍的並集。範圍必須重疊或相鄰,以便並集是一個單一的範圍(但請參閱
|
計算兩個範圍的交集。
|
計算兩個範圍的差集。第二個範圍不得被包含在第一個範圍中,以免差集不是一個單一範圍。
|
表 9.59. 多範圍運算子
運算子 描述 示例 |
---|
第一個多範圍是否包含第二個多範圍?
|
多範圍是否包含該範圍?
|
多範圍是否包含該元素?
|
範圍是否包含該多範圍?
|
第一個多範圍是否被第二個多範圍包含?
|
多範圍是否被範圍包含?
|
範圍是否被多範圍包含?
|
該元素是否被多範圍包含?
|
兩個多範圍是否重疊,即是否有任何元素是共同的?
|
多範圍是否與該範圍重疊?
|
範圍是否與多範圍重疊?
|
第一個多範圍是否嚴格位於第二個多範圍的左側?
|
多範圍是否嚴格位於範圍的左側?
|
範圍是否嚴格位於多範圍的左側?
|
第一個多範圍是否嚴格位於第二個多範圍的右側?
|
多範圍是否嚴格位於範圍的右側?
|
範圍是否嚴格位於多範圍的右側?
|
第一個多範圍是否不延伸到第二個多範圍的右側?
|
多範圍是否不延伸到範圍的右側?
|
範圍是否不延伸到多範圍的右側?
|
第一個多範圍是否不延伸到第二個多範圍的左側?
|
多範圍是否不延伸到範圍的左側?
|
範圍是否不延伸到多範圍的左側?
|
兩個多範圍是否相鄰?
|
多範圍是否與範圍相鄰?
|
範圍是否與多範圍相鄰?
|
計算兩個多範圍的並集。多範圍不必重疊或相鄰。
|
計算兩個多範圍的交集。
|
計算兩個多範圍的差集。
|
左側/右側/相鄰運算子在涉及空範圍或空多範圍時總是返回 false;也就是說,一個空範圍不被認為在任何其他範圍之前或之後。
在其他情況下,空範圍和空多範圍被視為加法單位元:任何值與空值進行並集運算後仍為自身。任何值減去空值仍為自身。一個空的多範圍與一個空範圍包含相同的點。每個範圍都包含空範圍。每個多範圍都包含任意數量的空範圍。
範圍並集和差集運算子如果導致結果範圍需要包含兩個不相交的子範圍,則會失敗,因為這樣的範圍無法表示。有單獨的運算子用於並集和差集,它們接受多範圍引數並返回多範圍,即使它們的引數不相交也不會失敗。因此,如果需要對可能不相交的範圍執行並集或差集運算,可以透過先將範圍轉換為多範圍來避免錯誤。
表 9.60 顯示了可用於範圍型別的函式。表 9.61 顯示了可用於多範圍型別的函式。
表 9.60. 範圍函式
表 9.61. 多範圍函式
lower_inc
、upper_inc
、lower_inf
和 upper_inf
函式對空範圍或空多範圍都返回 false。
如果您在文件中發現任何不正確之處、與您在使用特定功能時的經驗不符之處,或者需要進一步澄清的內容,請使用此表單報告文件問題。