跳转到内容

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 可能会生成大量代码,尤其是在大型变体记录的情况下。如果在同一个程序中,对于相同类型的对象,属性在许多地方被调用,则可以编写一个包含单个属性使用的函数,然后从多个地方调用该函数,以减少程序大小。

华夏公益教科书