Ada数字文字和下划线

Ada数字文字和下划线,ada,literals,Ada,Literals,这来自在线Ada参考手册: (第2.3节) 如果我这样做 my_literal ::= 123_456; 下划线(下划线)是什么意思它说它不影响意思。那是干什么用的?我相信有一个简单的答案,但阅读和重读这篇文章对我没有帮助。这与货币中的逗号(,)或[其他大]数字的原因是一样的:分组。 因此: 000000:常数:=1_000_000; 此外,您可以将其与基本设置结合使用,作为掩蔽设置: 类型位的范围为1..8; 子类型字节为Interfaces.Unsigned_8; 类型掩码是字节的数组

这来自在线Ada参考手册: (第2.3节)

如果我这样做

my_literal ::= 123_456;

下划线(下划线)是什么意思它说它不影响意思。那是干什么用的?我相信有一个简单的答案,但阅读和重读这篇文章对我没有帮助。

这与货币中的逗号(,)或[其他大]数字的原因是一样的:分组。 因此:

000000:常数:=1_000_000;
此外,您可以将其与基本设置结合使用,作为掩蔽设置:

类型位的范围为1..8;
子类型字节为Interfaces.Unsigned_8;
类型掩码是字节的数组(正范围);
掩码映射:常量掩码(位):=
(
2#0000_0001#,
2#0000_0010#,
2#0000_0100#,
2#0000_1000#,
2#0001_0000#,
2#0010_0000#,
2#0100_0000#,
2#1000_0000#
);

然后,您可能会将掩码映射和位与
以及
异或
一起使用来执行位操作。上述方法似乎比简单定义大量常量并直接操作它们要复杂一些,但更灵活的是,您可以在以后将其更改为函数,而不必更改任何客户端代码,如果该函数的结果是参数化整数,这可能更有用,其中位的定义为
1..PARAMETER'Size

是。Ada将可维护性作为设计目标。您必须知道,两个连续的下划线是错误的。[IIRC]对。这也适用于变量名,对吗?我的\u Var是正确的,我的\u Var是一个错误。当然是标识符名称,可能是文字。我不是100%确定,我似乎记得是这样的。@Shark8:As是前导下划线还是尾随下划线。
my_literal ::= 123_456;