У меня есть строка, переданная в функцию, я хотел бы сравнить первый символ строки с числом.
I.E.
if String(1) = "3" then
Когда я компилирую, я получаю:
warning: index for String may assume lower bound of 1
warning: suggested replacement String'First + 1
Я действительно хотел бы сделать это правильно, но когда я пытаюсь «первый», он фактически захватывает число, а не символ.
Есть ли лучший способ сделать это?
Я попытался найти первую концепцию, и на сайте ниже объясняется, что я на самом деле получаю номер индекса, а не фактическое содержимое: http://en.wikibooks.org/wiki/Ada_Programming/Types/array
Например,
Hello_World : constant String := "Hello World!";
World : constant String := Hello_World (7 .. 11);
Empty_String : constant String := "";
Используя 'Сначала, я получу:
Array 'First 'Last 'Length 'Range
Hello_World 1 12 12 1 .. 12
World 7 11 5 7 .. 11
Empty_String 1 0 0 1 .. 0
На основании этой информации я не могу получить Hиз Hello world (для сравнения, например, если Hello_World (1) = "H" тогда)
РЕДАКТИРОВАТЬ: Так, как я изначально делал это было (вставить имя переменной вместо строки в этом случае)
String(String'First .. String'First) = "1"
Так что это работает из того, что я могу сказать, однако, вместо того, чтобы писать все это, я обнаружил, что
String(String'First) = '1'
делает то же самое, но используя сравнение символов, что делает многоебольше смысла!
Спасибо за ответы всем!