跳转到内容

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


华夏公益教科书