【问题标题】:Ada: Can you convert array elements into an enum?Ada:你能把数组元素转换成枚举吗?
【发布时间】:2017-02-07 06:42:59
【问题描述】:

我希望能够从任何文本文件中读取任意数量的行,然后将每一行存储到一个数组中,然后将这些数组元素中的每一个元素都变成一个枚举类型。我能够在读取文件之前获取数组/枚举的大小,然后我可以填充数组,唯一的问题是能够在填充之前指定枚举类型中元素的数量。有没有办法做到这一点?还是其他一些聪明的方法?

【问题讨论】:

  • Ada 中的类型检查是在编译时完成的。当您在运行时加载文件时,您远远超出了发生任何类型检查的地步¹,因此当时创建枚举类型是没有意义的。您可能想描述您的用例。 ¹:需要在运行时进行的检查当然已编译到可执行文件中。
  • 可以在 Ada 的内部块中声明类型,但是这些类型在退出该内部块时不再存在。

标签: arrays enums type-conversion ada


【解决方案1】:

您不能在 Ada 中即时创建类型,因此简短的回答是“否”。

但有一个技巧(一如既往):您可以从主程序中为一个包编写 Ada 源文件,在其中根据主程序的输入数据声明一个内部枚举类型。然后你可以将这些源文件编译成一个动态库,将该库动态加载到主程序中,然后调用你刚刚编写的包的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 2019-07-08
    • 2023-02-23
    • 2013-01-17
    • 1970-01-01
    相关资源
    最近更新 更多