阿达:用函数重命名属性



在最近的一个关于'操作的问题中,我了解到它用于获取某些类型的语言定义的"属性"。据我所知,没有办法为你的类型创建你自己的属性

我遇到了一行我不理解的代码:

function Image(C: Ada.Containers.Count_Type) return String renames
          Ada.Containers.Count_Type'Image;

这是在干什么?

某些属性,如"读取"、"写入"、"输入"one_answers"输出",可以被用户定义的子程序覆盖,如:

procedure My_Write
   (Stream : not null access Ada.Streams.Root_Stream_Type'Class;
    Item   : in  My_Type);
for My_Type'Write Use My_Write;

不能重写'Image属性。示例中的函数定义是属性的重命名,允许您像调用普通子程序一样调用属性:

Image(My_Count);

而不是

Ada.Containers.Count_Type'Image(My_Count);

相关内容

  • 没有找到相关文章

最新更新