我有这个Ada代码。
with Ada.Text_IO;
use Ada.Text_IO;
procedure for_Loop is
begin
for Counter in 'A'..'Z' loop
Put(Counter);
end loop;
New_Line;
end for_Loop;
Ada 编译器 (gnatmake) 输出这些错误消息。
gcc -c for_loop.adb
for_loop.adb:6:24: ambiguous character literal
for_loop.adb:6:24: possible interpretation: Character
for_loop.adb:6:24: possible interpretation: Wide_Character
for_loop.adb:6:24: possible interpretation: Wide_Wide_Character
gnatmake: "for_loop.adb" compilation error
代码有什么问题?
来自这篇文章:
问题是"A"和"Z"可能来自字符或Wide_Character。最简单的更正是使类型显式;例如:对于字符范围"A"中的字符.."Z"环...结束循环;
with Ada.Text_IO;
use Ada.Text_IO;
procedure for_Loop is
begin
for Counter in Character range 'A'..'Z' loop
Put(Counter);
end loop;
New_Line;
end for_Loop;
这是输出:
ABCDEFGHIJKLMNOPQRSTUVWXYZ