我对编程很新,Ada我不得不说,所以我不知道这是一件容易的事情,我试着用Google搜索并搜索这个网站,但我无法真正找到它!
我想在枚举中添加一个字符串数组(或者enum_def不确切知道它是什么)
首先我有
name_type is (name1, name2, name3, name4, name5, etc)
我用这个做了我的事情
但是现在我想用unbounded_strings数组来填充这个name_type(因此没有任何内容,可能是1个起始名称),所以我逐个添加unbounded_strings。
所以事情会是这样的:
name_type is ()
ustring_array is array (1 .. 50) of Unbounded_String;
for I in 1 .. 8 loop
ustring_array (I) := "Get_Name" -- i get this name from somewhere
end loop;
fill name_type with strings from ustring_array (not code, I don't know how to do this part )
所以ustring_array看起来像(" name1"," name2"," name3"等) 我希望name_type看起来像(name1,name2,name3等),这样它们就是单独的部分而不是字符串
这样我的name_type的大小由ustring_array
中的字符串数定义这可能还是我要求不可能的事?
答案 0 :(得分:0)
答案 1 :(得分:0)
听起来,基本上,你在询问有关扩展枚举的问题。这是不可能的,但是可以定义一个将枚举映射到Unbounded_String的数组:
Type Directions is (Up, Down, Left, Right);
-- Assuming "+" renames of the string to unbounded string.
Direction_Text : Constant Array (Directions) of Unbounded_String :=
( Up => +"Upwards",
Down => +"Downwards",
Left => +"Port",
Right => +"Starboard"
);
还有一个新容器Ada.Containers.Indefinite_Holders
,它可以用作数组中的一个元素来保存不受约束的字符串。