0
我正在試驗我的第一個Ada程序(Ada 2012)並遇到一些困難。我從用戶那裏獲得輸入,並將其存儲到大量無限制的字符串中。然後,我將這些不受限制的字符串傳遞給一個過程,在該過程中,我提取每個無界字符串的最後一個元素並將其添加到字符數組中。我讀過數組需要實例化爲類型,但是當我這樣做時,我遇到了錯誤,所以我沒有類型引用實例化。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'是'Unbounded_String'時,爲什麼期望能夠寫'c0.Last'? –
您是否瀏覽過語言參考手冊中的第A.4.5節?它可能會幫助你。 –
作爲偶爾的牌手,我覺得有義務告訴你,牌具有「套裝」,而不是「套房」。 – ajb