J C*_*per 3 attributes function ada
在最近的一个问题中,我询问了'操作,并了解到它用于获取某些类型的语言定义的"属性".从我可以收集的内容来看,无法为您的类型创建自己的属性.
我遇到了一些我不理解的代码:
function Image(C: Ada.Containers.Count_Type) return String renames
Ada.Containers.Count_Type'Image;
Run Code Online (Sandbox Code Playgroud)
这是做什么的?
某些属性,如"读取","写入","输入"和"输出",可以由用户定义的子程序覆盖,如下所示:
procedure My_Write
(Stream : not null access Ada.Streams.Root_Stream_Type'Class;
Item : in My_Type);
for My_Type'Write Use My_Write;
Run Code Online (Sandbox Code Playgroud)
无法覆盖'图像属性.您的示例中的函数定义是重命名属性,允许您像调用普通子程序一样调用该属性:
Image(My_Count);
Run Code Online (Sandbox Code Playgroud)
代替
Ada.Containers.Count_Type'Image(My_Count);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
444 次 |
| 最近记录: |