Variables 如何检查变量的类型

Variables 如何检查变量的类型,variables,ada,introspection,Variables,Ada,Introspection,我需要验证一个变量是否为特定类型 有没有办法检查Ada中变量的类型 我试过查看Ada属性,但没有看到任何内容。Ada是一种强类型语言,因此实际上不需要像Python或Ruby(duck类型语言)中那样使用函数来返回变量的类型,因为当您声明变量时,您指定了它的类型。程序已经知道它的类型 如果使用类型T'Class声明变量X,则实际值的类型可以是T或从T派生的任何类型。在这种情况下,可以使用X'Tag获取值的实际类型的标记,这是最接近实际类型的标记。一旦你有了一个标记,你可以做一些事情,比如获取类型

我需要验证一个变量是否为特定类型

有没有办法检查Ada中变量的类型


我试过查看Ada属性,但没有看到任何内容。

Ada是一种强类型语言,因此实际上不需要像Python或Ruby(duck类型语言)中那样使用函数来返回变量的类型,因为当您声明变量时,您指定了它的类型。程序已经知道它的类型


如果使用类型T'Class声明变量X,则实际值的类型可以是T或从T派生的任何类型。在这种情况下,可以使用X'Tag获取值的实际类型的标记,这是最接近实际类型的标记。一旦你有了一个标记,你可以做一些事情,比如获取类型的名称(Ada.Tags中有用于此的函数),将它与某个类型的标记进行比较,看看它是否是该类型,等等。但是Integer不是一个标记类型,因此,您不能在其上使用“Tag”,因为它是一种基本类型,因此没有任何用处。

这个答案将帮助您理解为什么不需要它。它的可能副本将有助于发布一些代码,并在您试图“检查变量类型”的位置包含一些“伪代码”或注释。通过这种方式,我们可以查看它,并找出您试图在Ada中做的事情是否有意义,以及正确的方法是什么。