【发布时间】:2015-05-14 19:43:32
【问题描述】:
我有一个由某种类型的对象组成的数组,由 index 类型索引:
type index is new Integer range 1..50;
type table is new Array(index) of expression;
现在,我需要访问这些表达式之一,这取决于用户通过键盘输入的内容。为此,我执行以下操作:
c: Character;
get(c);
s: String := " ";
s(1) := c;
我终于可以把字符转换成Integer了:
i: Integer;
i := Integer'Value(s);
现在,我有了用户想要访问的值的位置,但是 Ada 不允许您访问 table,因为它是由 index 而不是 Integer 索引的,它们是不同的类型。
根据用户输入访问表达式的最佳解决方案是什么?
【问题讨论】:
-
您是在问如何进行类型转换?简单,
Index(i)。但是,您可以将Character直接转换为Index:Index'Value(s) -
你可能想
get一个字符串而不是一个字符,因为使用这个算法的字符只会让你得到table的前9个元素。
标签: indexing types integer type-conversion ada