enum_type_qualification.adb

来自「This contains the following topics and m」· ADB 代码 · 共 29 行

ADB
29
字号
with Text_IO; use Text_IO;
procedure Enum_type_qualification is
   --In some situations an expression's or value's type can be ambiguous.
   --For example,
   type primary is (Red, Green, Blue, yellow, orange);
   subtype new_primary is primary range Red .. Blue;
   type secondary is (Red, Green, sai, gray, Blue);
   -- type rainbow is new integer;
   --subtype new_color is rainbow range 1..20;
   var_primary, age : primary;
   var1_primary     : secondary;
   i                : Integer;
begin
   --var1_primary := var_primary; -- error
   age := var_primary;-- no error
   --for i in red..blue loop -- this is ambiguous
   -- Here we need to specify precisely what type is required. This is done
   --with type qualification.
   for i in  primary'(Red) .. primary'(Blue) loop
      -- for i in rainbow'(red)..blue loop -- only one qualification needed
      --for i in primary'(red)..blue loop
      --Type qualification does not change a value's type. It merely informs
      --the compiler of what type the programmer thinks it should be.
      Put_Line ("hai");
   end loop;
   --end loop;
   -- end loop;
end Enum_type_qualification;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?