Ada 编程/属性/'Valid Scalars
外观
'Valid_Scalars
属性旨在简化检查复合对象中标量子组件有效性的过程。该属性定义了所有表示对象的 前缀 P
,除了标记私有类型或 Unchecked_Union
类型。属性值为 Boolean
类型。
P'Valid_Scalars
当且仅当对 P
的每个标量子组件 C
评估 C'Valid
都返回 True
时,或 P
没有标量子组件时,才返回 True
。对于标量类型,属性 'Valid_Scalars
等同于属性 'Valid
。
未指定子组件检查的顺序,以及在确定一个子组件无效后是否会继续检查其他子组件。如果前缀 P
是类宽类型 T'Class
(其中 T
是关联的具体类型),或者前缀 P
是具体标记类型 T
,那么只检查 T
的子组件;换句话说,即使 T'Class (P)'Tag /= T'Tag
,也不会检查 T
的扩展类型的组件。
如果编译器能够在编译时确定属性的前缀没有标量子组件,则会发出警告。
注意:Valid_Scalars
可能会生成大量代码,尤其是在大型变体记录的情况下。如果在同一个程序中,对于相同类型的对象,属性在许多地方被调用,则可以编写一个包含单个属性使用的函数,然后从多个地方调用该函数,以减少程序大小。