2012-12-07 2 views
-1

그래서 나는 선언 된 유형이 있으며 사람들의 이름을 의미하며, 이름 중 하나가 예를ADA 예약어는 식별자로

type name is (BOB, SKIPPY, DO) 

Compiler error: reserved word "Do" cannot be used as identifier.

에 대한 을 "수행"입니다이 문제를 어디 있습니까 문자열을 사용할 필요없이? 선생님이 우리에게 끈을 강요하기 위해 이것을 의도 한 것처럼 보입니다.

일반 패키지를 만들었으므로 변수 문자열 유형을 만들고 대신 인스턴스화하는 것이 더 쉬울까요?

답변

4

예약어는 이며 예약어는입니다.

  • 접두어 그것은, 예를 들면 : 예약 된 단어가 주어진 상황에서 가장 좋은 단어는 일반적으로 사용되는 기술의 소수가있다

    (Name_Bob, Name_Skippy, Name_Do);

  • 접미사, 예 : (Bob_Name, Skippy_Name, Do_Name);
  • "맞춤법 오류"it, 예 : (Bob, Skippy, Do_Do);

출력 할 때 이것이 어떻게 보일지 걱정된다면 '이미지'라는 열거 형 enum-to-string 특성은 일반적으로 열거 형 값의 리터럴 표현이므로 낙심되므로 출력 내용이 선택한 코딩 식별자와 밀접하게 관련됩니다. 디버그에서는 문제가 없지만 사람이 읽을 수있는 출력을 얻으려면 열거 형 값을 대문자로 또는 열거 형에서 문자열로 매핑하는 것과 같은 다른 용도로 사용해야합니다.

몇 가지 특별한 이유가있는 경우가 아니면 문자열을 사용하여 열거 형 값을 나타내는 것으로 얻을 수있는 것이 없습니다. 이 같은

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;