所以我有一个我声明的类型,它引用了人名,其中一个名字是“Do” 例如
type name is (BOB, SKIPPY, DO)
编译器错误:保留字“Do”不能用作标识符。
这周围的任何地方都没有使用字符串吗?似乎老师故意这样做是为了强迫我们使用。
我制作了一个通用包,所以更容易制作一个变量字符串类型而只是实例化它?
答案 0 :(得分:4)
保留字是保留字,故事结尾。
当保留字是特定情况下的最佳单词时,有一些常用的技术:
如果您担心如果输出它将会是什么样子,那么,通常不鼓励天真的枚举到字符串属性'Image,因为它是枚举值的字面描述,因此它的内容您的输出与您选择的编码标识符紧密相关。它适用于调试,但对于人类可读的输出,您应该使用其他内容,例如枚举值上的大小写或使用枚举到字符串Map。
除非有一些令人信服的理由,否则使用字符串来表示枚举值无法获得任何好处。
答案 1 :(得分:2)
使用前缀[或后缀]选项,然后您可以执行以下操作:
type Names is ( Name_Bobby, Name_Dave, Name_Calvin, Name_Do );
Function Put( Item : In names ) Return String is
Prolog : Constant String:= "Name_";
Image : Constant String:= Item'Image;
begin
Return Image( Image'First+Prolog'Length..Image'Last );
end Put;