我收到以下编译器错误:
没有选择器" Put_Timestamp"对于类型" Timestamp_Record_Type"在time_types.ads:99定义
给出错误的代码行是:
Timestamp.Put_Timestamp(Trs_Time);
此项目中的Timestamp和Time_Types包将导入错误所在的同一文件的顶部:
with Timestamp;
with Time_Types;
timestamp.ads包含以下内容:
with Ada.Calendar;
with Time_Types;
package Timestamp is
function Calculate_Ada_Timestamp( Timestamp_Value : in Time_Types.Timestamp_Time_Type )
return Ada.Calendar.Time;
procedure Put_Timestamp
(Timestamp: in Time_Types.Timestamp_Record_Type);
end Timestamp;
起初我认为错误必须意味着Put_Timestamp,参数类型为Timestamp_Record_Type不存在,但根据上面的代码,情况显然并非如此。
我错过了什么?
答案 0 :(得分:4)
在time_types.ads:99定义的类型“Timestamp_Record_Type”没有选择器“Put_Timestamp”
(重点补充。)
您已向我们展示了Timestamp
作为包的声明,但编译器显然认为Timestamp
是Timestamp_Record_Type
类型的表达式(可能是变量名称)。
你没有向我们展示的代码中的某个地方,我认为你已经声明了一个名为Timestamp
的类型为Timestamp_Record_Type
的变量,并且编译器正在寻找一个.Put_Timestamp
即可适用于那种类型的东西。
我建议您过度使用名称Timestamp
;您对Put_Timestamp
过程的参数使用相同的名称。也许Timestamps
可能是包的更好名称。