indexing - Integer to custom type conversion in Ada -


i have array of kind of objects, indexed type index:

type index new integer range 1..50; type table new array(index) of expression; 

now, need access 1 of these expressions, depending on user entry keyboard. following:

c: character; get(c);  s: string := " "; s(1) := c; 

finally can cast character type integer:

i: integer; := integer'value(s); 

now, have position of value user want access, ada doesn't let access table, because indexed index , not integer, different types.

what best solution, access expression based on user's input?

type index new integer range 1..50; type table new array(index) of expression; 

you don't need (and can't have) new keyword in declaration of table.

c: character; get(c);  s: string := " "; s(1) := c; 

the last 2 lines can written as:

s: string := (1 => c); 

(assuming c visible , initialized @ point s declared).

i: integer; := integer'value(s); 

this not "cast". ada doesn't have casts. it's not type conversion. understand mean; if c = '4', s = "4", , integer'value(s) = 4. (you should think if value of c not decimal digit; cause integer'value(s) raise constraint_error.)

now, have position of value user want access, ada doesn't let access table, because indexed index , not integer, different types.

simple: don't use different types:

i: index := index'value(s); 

Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -