我正在使用 Ada 的目录库和 Command_Line 库,并读取命令行中给出的文本文件的字符数(大小),然后将其分配给一个整数。
Character_Count := Size(Argument(1));
编译器告诉我 Integer 和 File_Size 不匹配,即使 File_Size 是 Integer 的子类型,我很确定。我怎样才能转换它?
我正在使用 Ada 的目录库和 Command_Line 库,并读取命令行中给出的文本文件的字符数(大小),然后将其分配给一个整数。
Character_Count := Size(Argument(1));
编译器告诉我 Integer 和 File_Size 不匹配,即使 File_Size 是 Integer 的子类型,我很确定。我怎样才能转换它?
Ada.Directories.File_Size
不是的子类型Integer
。
它在语言参考手册中定义为:
type File_Size is range 0 .. *implementation-defined*;
如果您考虑一下,将其作为子类型没有多大意义。Integer
可以窄到 16 位,这几乎不足以容纳任意文件的大小。
您可以使用转换来转换为整数:
Character_Count := Integer(Size(Argument(1)));
Character_Count
但首先声明为 a可能会好得多File_Size
。