来自 Wikibooks,开放的书籍,为开放的世界
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
...