跳转到内容

Ada 编程/关键字/and

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

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

逻辑运算符

[编辑 | 编辑源代码]

布尔运算符

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

布尔短路运算符

[编辑 | 编辑源代码]

短路运算符用于使布尔表达式的部分的计算条件化:and thenor else。这永远不应该为了加速计算而完成(对于现代优化编译器来说,它可能不会产生这种效果)。正确的使用方式是防止计算已知会引发异常的表达式。

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

在上面的示例中,G (Dog)只有在指针Dog不是null时才会被调用,也就是说,它实际上指向了一些东西。

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

由于 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
华夏公益教科书