跳转到内容

Ada 编程/关键字/and

来自维基教科书,开放的书籍,开放的世界

Ada. Time-tested, safe and secure.
Ada. 经久考验,安全可靠。

逻辑运算符

[编辑 | 编辑源代码]

布尔运算符

[编辑 | 编辑源代码]
X : Boolean := A > 10 and A < 20;

布尔短路运算符

[编辑 | 编辑源代码]

短路运算符用于使布尔表达式的部分评估条件化:and then, or else。这永远不应该用于加快评估速度(使用现代优化编译器,它可能不会产生这种效果)。正确的用法是防止评估已知会引发异常的表达式。

if Dog /= null and then G (Dog) then
   Walk (Dog);
end if;

在上面的例子中,G (Dog)仅在指针Dog不为null时调用,即它实际上指向某处。

实际上,and thenor else 并不是参考手册意义上的运算符,它们被称为“短路控制形式”。区别在于(true)运算符可以重新定义(即重载),而这些则不能。但是,它们被定义为任何布尔类型。

由于 Ada 允许并行评估表达式参数,因此短路运算符不是评估布尔表达式的标准方式。在任何最终结果保证相同的情况下,编译器被允许使用短路评估。

数组上的布尔运算符

[编辑 | 编辑源代码]

and 运算符应用于来自左数组和右数组的每对布尔元素。结果与左操作数具有相同的边界。

type Day_Of_Month is range 1 .. 31;            
type Month_Array is array (Day_Of_Month) of Boolean;

X : Month_Array := Function_1;
Y : Month_Array := Function_2;
Z : Month_Array := X and Y;

按位运算符

[编辑 | 编辑源代码]

运算符 and 可与 模类型 一起使用来执行按位操作。

向带标签类型添加接口

[编辑 | 编辑源代码]

此语言特性仅从 Ada 2005 开始可用。

type Programmer is new Person 
                   and Printable
with 
   record
     Skilled_In : Language_List;
   end record;

维基教科书

[编辑 | 编辑源代码]

Ada 95 参考手册

[编辑 | 编辑源代码]

Ada 2005 参考手册

[编辑 | 编辑源代码]

Ada 质量和风格指南

[编辑 | 编辑源代码]


Ada 关键字
abort else new return
abs elsif not reverse
abstract (Ada 95) end null
accept entry select
access exception of separate
aliased (Ada 95) exit or some (Ada 2012)
all others subtype
and for out synchronized (Ada 2005)
array function overriding (Ada 2005)
at tagged (Ada 95)
generic package task
begin goto parallel (Ada 2022) terminate
body pragma then
if private type
case in procedure
constant interface (Ada 2005) protected (Ada 95) until (Ada 95)
is use
declare raise
delay limited range when
delta loop record while
digits rem with
do mod renames
requeue (Ada 95) xor


Ada 运算符
and and then > + abs &
or or else >= - mod
xor = < * rem in
not /= <= ** / not in
华夏公益教科书