Arrays Ada:获取数组中最后一个元素时的前缀问题
我正在试验我的第一个Ada计划(Ada 2012),遇到了一些困难。我从用户那里获取输入,并将其存储到许多无界字符串中。然后我将这些无界字符串传递到一个过程中,在此过程中提取每个无界字符串的最后一个元素,并将其添加到字符数组中。我读到数组需要被实例化为类型,但是当我这样做时,我会遇到错误,所以我在没有类型引用的情况下进行了实例化 这个问题随之而来Arrays Ada:获取数组中最后一个元素时的前缀问题,arrays,ada,Arrays,Ada,我正在试验我的第一个Ada计划(Ada 2012),遇到了一些困难。我从用户那里获取输入,并将其存储到许多无界字符串中。然后我将这些无界字符串传递到一个过程中,在此过程中提取每个无界字符串的最后一个元素,并将其添加到字符数组中。我读到数组需要被实例化为类型,但是当我这样做时,我会遇到错误,所以我在没有类型引用的情况下进行了实例化 这个问题随之而来 last: Character := c0.Last; 我收到“所选组件“c0”中的前缀无效”错误 以下是迄今为止的代码: with Ada.
last: Character := c0.Last;
我收到“所选组件“c0”中的前缀无效”错误
以下是迄今为止的代码:
with Ada.Text_IO, Ada.Integer_Text_IO, Ada.Strings.Unbounded.Text_IO;
use Ada.Text_IO, Ada.Integer_Text_IO, Ada.Strings.Unbounded, Ada.Strings.Unbounded.Text_IO;
procedure game is
card0: Unbounded_String;
card1: Unbounded_String;
card2: Unbounded_String;
card3: Unbounded_String;
card4: Unbounded_String;
cardNumArray: array (1..5) of Integer;
suiteArray: array (1..5) of Character;
procedure setUpData(c0, c1, c2, c3, c4: in Unbounded_String) is
last_c0: Character := c0.Last;
begin
suiteArray := (last_c0, 'S', 'S', 'H', 'S');
end setUpData;
begin
Put_Line ("Enter your card details:\n");
Put_Line ("Enter card 1, e.g. ""AH:"" ");
Get_Line(card0);
Put_Line ("Enter card 2, e.g. ""KH:"" ");
Get_Line(card1);
Put_Line ("Enter card 3, e.g. ""QH:"" ");
Get_Line(card2);
Put_Line ("Enter card 4, e.g. ""10H:"" ");
Get_Line(card3);
Put_Line ("Enter card 5, e.g. ""JH:"" ");
Get_Line(card4);
setUpData(card0, card1, card2, card3, card4);
end game;
很可能会解决您的问题。当
c0
是一个无界字符串时,您为什么希望能够编写c0.Last
?您是否浏览过《语言参考手册》中的A.4.5节?这可能会对你有所帮助。作为一名偶尔玩牌的人,我觉得有义务告诉你,纸牌有“套牌”,而不是“套牌”。请注意。非常感谢。
last_c0 : Character := element (c0, length (c0));