跳轉到內容

Ada 程式設計/運算子

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

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

標準運算子

[編輯 | 編輯原始碼]

Ada 允許對所有標準運算子進行 運算子過載,因此以下摘要只能描述每個運算子的建議標準操作。有可能濫用任何標準運算子來執行不尋常的操作。

每個運算子要麼是 關鍵字 要麼是 分隔符 - 因此所有運算子頁面都重定向到相應的 關鍵字分隔符

運算子有引數,在 RM 中分別稱為二元運算子的左和右,一元運算子的右(表示相對於運算子符號的位置)。

該列表按優先順序從低到高排序。

邏輯運算子

[編輯 | 編輯原始碼]
and
and , (也是關鍵字 and)
or
or , (也是關鍵字 or)
xor
異或 , (也是關鍵字 xor)

關係運算符

[編輯 | 編輯原始碼]
/=
不等於 , (也是特殊字元 /=)
=
等於 , (也是特殊字元 =)
<
小於 , (也是特殊字元 <)
<=
小於或等於 (), (也是特殊字元 <=)
>
大於 (), (也是特殊字元 >)
>=
大於或等於 (), (也是特殊字元 >=)

二元加法運算子

[編輯 | 編輯原始碼]
+
, (也是特殊字元 +)
-
, (也是特殊字元 -)
&
連線, & , (也包含特殊字元&)

一元加法運算子

[編輯 | 編輯原始碼]
+
加號 , (也包含特殊字元+)
-
減號 , (也包含特殊字元-)

乘法運算子

[編輯 | 編輯原始碼]
*
乘法,, (也包含特殊字元*)
/
除法 , (也包含特殊字元/)
mod
模數 (也包含關鍵字mod)
rem
餘數 (也包含關鍵字rem)

最高優先順序運算子

[編輯 | 編輯原始碼]
**
, (也包含特殊字元**)
not
邏輯非 , (也包含關鍵字not)
abs
絕對值 (也包含關鍵字abs)

短路控制形式

[編輯 | 編輯原始碼]

這些不是運算子,因此不能過載。

and then
例如 if Y /= 0 and then X/Y > Limit then ...
or else
例如 if Ptr = null or else Ptr.I = 0 then ...

成員測試

[編輯 | 編輯原始碼]

成員測試也不能過載,因為它們不是運算子。

in
元素,, 例如 if I in Positive then, (也包含關鍵字in)
not in
非元素,, 例如 if I not in Positive then, (也包含關鍵字not in)

範圍成員測試

[編輯 | 編輯原始碼]
if Today not in Tuesday .. Thursday then
   ...

子型別成員測試

[編輯 | 編輯原始碼]
Is_Non_Negative := X in Natural;

類成員測試

[編輯 | 編輯原始碼]
exit when Object in Circle'Class;

範圍成員測試

[編輯 | 編輯原始碼]
if Today not in Tuesday .. Thursday then
   ...

選擇列表成員測試

[編輯 | 編輯原始碼]

此語言特性是在Ada 2012中引入的。

Ada 2012 將成員資格測試擴充套件到包含多個範圍或值選擇的並集(短路或)。

if Today in Monday .. Wednesday | Friday then
   ...

另請參閱

[編輯 | 編輯原始碼]

華夏公益教科書

[編輯 | 編輯原始碼]

Ada 95 參考手冊

[編輯 | 編輯原始碼]

Ada 2005 參考手冊

[編輯 | 編輯原始碼]

Ada 質量和風格指南

[編輯 | 編輯原始碼]


Ada 運算子
and and then > + abs &
or or else >= - mod
xor = < * rem in
not /= <= ** / not in


華夏公益教科書