Ada 编程/关键字/and
外观
(重定向自 Ada 编程/运算符/and)
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 then 和 or else 在参考手册的意义上不是运算符,它们被称为“短路控制形式”。区别在于(真)运算符可以重新定义(即重载),而它们不能。但是,它们对于任何布尔类型都是定义的。
由于 Ada 允许对表达式的参数进行并行计算,因此短路运算符不是计算布尔表达式的标准方式。在最终计算结果保证相同的情况下,编译器被允许使用短路计算。
and 运算符应用于来自左数组和右数组的每个布尔元素对。结果与左操作数具有相同的界限。
type
Day_Of_Monthis
range
1 .. 31;type
Month_Arrayis
array
(Day_Of_Month)of
Boolean; X : Month_Array := Function_1; Y : Month_Array := Function_2; Z : Month_Array := Xand
Y;
运算符 and 可以与 模类型 一起使用来执行按位操作。
此语言特性仅从 Ada 2005 开始可用。
type
Programmeris
new
Personand
Printablewith
record
Skilled_In : Language_List;end
record
;
- 2.9 保留字 (注释)
- 3.9.4 接口类型 (注释)
- 4.4 表达式 (注释)
- 附录 P (信息性) 语法摘要 (注释)
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 运算符 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|