跳轉至內容

Ada 程式設計/屬性/'Range

來自 Wikibooks,開放世界中的開放書籍

Ada. Time-tested, safe and secure.
Ada. 經久耐用,安全可靠。

屬性 attribute 的含義取決於字首 X 的含義。

如果 X 是一個標量子型別,則 X'Range 表示該子型別的有效值範圍,即它與子型別本身相同。

如果 X 是一個受約束的陣列子型別或陣列物件,則 X'Range 表示 X 的索引範圍。

在任何情況下,X'Range 等效於 X'First .. X'Last,但 X 只會被評估一次。

如果 X 是多維的,則屬性需要一個靜態引數 N 來標識第 N 個索引;'Range (1) 與 'Range 相同。

X'Range (N) 等效於 X'First(N) .. X'Last(N),但 X 只會被評估一次。

type T is range 1..10;  --  T'Range is equal to T

type A is array (T) of S;                  --  these three     A'Range is the same as T
type A is array (T'Range) of S;            --  declarations
type A is array (T'First .. T'Last ) of S; --  are equivalent

type B is array (T range <>) of S;  --  B'Range is illegal (B is unconstrained)
subtype SB is B (2 .. 5);           --  SB'Range is the same as 2 .. 5

type M is array (Boolean, T) of S;  --  M'Range is equivalent to M'Range (1), which is Boolean
                                    --  M'Range (2) is the same as T
OA: A;           --  OA'Range is the same as T
OB: B (2 .. 5);  --  OB'Range is equal to 2 .. 5

Ada 參考手冊

[編輯 | 編輯原始碼]
華夏公益教科書